Crawler Summary

playstore-android-native answer-first brief

Guide and review the preparation of a native Android (Java/Kotlin) project for Google Play Store release. Covers keystore generation, signing configuration, ProGuard/R8 rules, and AAB build. Use when the user wants to publish, release, deploy, sign, or prepare a native Android app for Play Store, or when they mention "bundleRelease", "release signing", "play store android", "proguard rules", "R8 errors", "signing config", or "generate keystore". --- name: playstore-android-native description: > Guide and review the preparation of a native Android (Java/Kotlin) project for Google Play Store release. Covers keystore generation, signing configuration, ProGuard/R8 rules, and AAB build. Use when the user wants to publish, release, deploy, sign, or prepare a native Android app for Play Store, or when they mention "bundleRelease", "release signing", "play store and Capability contract not published. No trust telemetry is available yet. Last updated 4/15/2026.

Freshness

Last checked 4/15/2026

Best For

playstore-android-native is best for general automation workflows where OpenClaw compatibility matters.

Not Ideal For

Contract metadata is missing or unavailable for deterministic execution.

Evidence Sources Checked

editorial-content, GITHUB OPENCLEW, runtime-metrics, public facts pack

Claim this agent
Agent DossierGitHubSafety: 94/100

playstore-android-native

Guide and review the preparation of a native Android (Java/Kotlin) project for Google Play Store release. Covers keystore generation, signing configuration, ProGuard/R8 rules, and AAB build. Use when the user wants to publish, release, deploy, sign, or prepare a native Android app for Play Store, or when they mention "bundleRelease", "release signing", "play store android", "proguard rules", "R8 errors", "signing config", or "generate keystore". --- name: playstore-android-native description: > Guide and review the preparation of a native Android (Java/Kotlin) project for Google Play Store release. Covers keystore generation, signing configuration, ProGuard/R8 rules, and AAB build. Use when the user wants to publish, release, deploy, sign, or prepare a native Android app for Play Store, or when they mention "bundleRelease", "release signing", "play store and

OpenClawself-declared

Public facts

4

Change events

1

Artifacts

0

Freshness

Apr 15, 2026

Verifiededitorial-contentNo verified compatibility signals

Capability contract not published. No trust telemetry is available yet. Last updated 4/15/2026.

Trust evidence available

Trust score

Unknown

Compatibility

OpenClaw

Freshness

Apr 15, 2026

Vendor

Tacuchi

Artifacts

0

Benchmarks

0

Last release

Unpublished

Executive Summary

Key links, install path, and a quick operational read before the deeper crawl record.

Verifiededitorial-content

Summary

Capability contract not published. No trust telemetry is available yet. Last updated 4/15/2026.

Setup snapshot

git clone https://github.com/Tacuchi/playstore-android-native.git
  1. 1

    Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.

  2. 2

    Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.

Evidence Ledger

Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.

Verifiededitorial-content
Vendor (1)

Vendor

Tacuchi

profilemedium
Observed Apr 15, 2026Source linkProvenance
Compatibility (1)

Protocol compatibility

OpenClaw

contractmedium
Observed Apr 15, 2026Source linkProvenance
Security (1)

Handshake status

UNKNOWN

trustmedium
Observed unknownSource linkProvenance
Integration (1)

Crawlable docs

6 indexed pages on the official domain

search_documentmedium
Observed Apr 15, 2026Source linkProvenance

Release & Crawl Timeline

Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.

Self-declaredagent-index

Artifacts Archive

Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.

Self-declaredGITHUB OPENCLEW

Extracted files

0

Examples

6

Snippets

0

Languages

typescript

Parameters

Executable Examples

bash

keytool -genkeypair \
  -alias upload \
  -keyalg RSA -keysize 2048 \
  -validity 10000 \
  -storetype PKCS12 \
  -keystore upload-keystore.jks

properties

storePassword=<password>
keyPassword=<same-password-as-store>
keyAlias=upload
storeFile=<absolute-or-relative-path-to-upload-keystore.jks>

gitignore

keystore.properties
*.jks
*.keystore
local.properties

kotlin

import java.util.Properties
import java.io.FileInputStream

val keystoreProperties = Properties().apply {
    val file = rootProject.file("keystore.properties")
    if (file.exists()) load(FileInputStream(file))
}

android {
    signingConfigs {
        create("release") {
            keyAlias = keystoreProperties["keyAlias"] as String
            keyPassword = keystoreProperties["keyPassword"] as String
            storeFile = file(keystoreProperties["storeFile"] as String)
            storePassword = keystoreProperties["storePassword"] as String
        }
    }
    buildTypes {
        release {
            isMinifyEnabled = true
            isShrinkResources = true
            signingConfig = signingConfigs.getByName("release")
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
        }
    }
}

proguard

# Kotlin (always needed with minification)
-keep class kotlin.Metadata { *; }
-dontwarn kotlin.**

# Coroutines
-keepnames class kotlinx.coroutines.internal.MainDispatcherFactory {}
-keepnames class kotlinx.coroutines.CoroutineExceptionHandler {}
-keepclassmembers class kotlinx.coroutines.** { volatile <fields>; }

# kotlinx.serialization
-keepattributes *Annotation*, InnerClasses
-dontnote kotlinx.serialization.AnnotationsKt
-keepclassmembers class kotlinx.serialization.json.** { *** Companion; }
-keep,includedescriptorclasses class **$$serializer { *; }
-keepclassmembers class * { @kotlinx.serialization.Serializable *; }

# Retrofit + OkHttp
-keepattributes Signature, Exceptions
-keep class retrofit2.** { *; }
-keepclasseswithmembers class * { @retrofit2.http.* <methods>; }
-dontwarn okhttp3.**
-dontwarn okio.**

# Gson (consider migrating to kotlinx.serialization)
-keep class * extends com.google.gson.TypeAdapter
-keep class * implements com.google.gson.TypeAdapterFactory
-keepclassmembers,allowobfuscation class * {
    @com.google.gson.annotations.SerializedName <fields>;
}

bash

./gradlew bundleRelease

Docs & README

Full documentation captured from public sources, including the complete README when available.

Self-declaredGITHUB OPENCLEW

Docs source

GITHUB OPENCLEW

Editorial quality

ready

Guide and review the preparation of a native Android (Java/Kotlin) project for Google Play Store release. Covers keystore generation, signing configuration, ProGuard/R8 rules, and AAB build. Use when the user wants to publish, release, deploy, sign, or prepare a native Android app for Play Store, or when they mention "bundleRelease", "release signing", "play store android", "proguard rules", "R8 errors", "signing config", or "generate keystore". --- name: playstore-android-native description: > Guide and review the preparation of a native Android (Java/Kotlin) project for Google Play Store release. Covers keystore generation, signing configuration, ProGuard/R8 rules, and AAB build. Use when the user wants to publish, release, deploy, sign, or prepare a native Android app for Play Store, or when they mention "bundleRelease", "release signing", "play store and

Full README

name: playstore-android-native description: > Guide and review the preparation of a native Android (Java/Kotlin) project for Google Play Store release. Covers keystore generation, signing configuration, ProGuard/R8 rules, and AAB build. Use when the user wants to publish, release, deploy, sign, or prepare a native Android app for Play Store, or when they mention "bundleRelease", "release signing", "play store android", "proguard rules", "R8 errors", "signing config", or "generate keystore".

Play Store Release — Android Native

Build a signed Android App Bundle (AAB) from a native Android (Java/Kotlin) project, ready for Google Play Store.

Before You Start — Assess the Project

Ask these questions BEFORE touching any files:

  1. Gradle DSL? Check app/build.gradle vs build.gradle.kts

    • .kts → use isMinifyEnabled (with is prefix)
    • .gradle → use minifyEnabled (without is prefix)
    • NEVER mix — using the wrong property is a silent no-op (no error, no minification)
  2. Existing signing config? Search for signingConfigs in the app build file

    • Already exists → Verify it reads from a properties file, don't duplicate
    • Missing → Add from scratch
  3. Existing keystore? Ask the user before generating a new one

    • Already has .jks → Reuse it, skip Step 1
    • First release → Generate new keystore
  4. Which libraries need ProGuard rules? Check build.gradle dependencies block:

    • Uses Retrofit/OkHttp → Add network rules
    • Uses Gson → Add serialization rules (or better: suggest migrating to kotlinx.serialization)
    • Uses kotlinx.serialization → Add @Serializable keep rules
    • Uses Room/Hilt/Dagger → No custom rules needed (compile-time code generation)
    • Only Jetpack Compose → No custom rules needed (Compose compiler handles it)
  5. AGP version? Check libs.versions.toml or root build.gradle

    • AGP 8+ → Requires Java 17. Verify JAVA_HOME or org.gradle.java.home
    • AGP 7.x → Java 11 sufficient
  6. Flavors? Search for productFlavors in the build file

    • Has flavors → Each flavor needs its own or a shared signing config; build command changes to bundleProdRelease etc.
    • No flavors → Single release config

Workflow

| Step | Action | Key file | |------|--------|----------| | 1 | Generate upload keystore | upload-keystore.jks | | 2 | Create credentials file | keystore.properties | | 3 | Configure signing in Gradle | app/build.gradle.kts | | 4 | Configure ProGuard / R8 (by dependency) | app/proguard-rules.pro | | 5 | Build release AAB | CLI | | 6 | Verify output | CLI + checklist |


Step 1 — Generate Upload Keystore

keytool -genkeypair \
  -alias upload \
  -keyalg RSA -keysize 2048 \
  -validity 10000 \
  -storetype PKCS12 \
  -keystore upload-keystore.jks

Critical details:

  • -validity 10000 = ~27 years. Google requires validity beyond Oct 22 2033.
  • -storetype PKCS12 — avoids JKS migration warnings. But with PKCS12, store password and key password must be identical. keytool silently uses the store password for the key. Different passwords → signing fails later with misleading "Cannot recover key" error.
  • Store the .jks outside the project. Recommended: ~/.android/keystores/ or a secrets manager.

Step 2 — Create Credentials File

Create keystore.properties in the project root (must NOT be committed):

storePassword=<password>
keyPassword=<same-password-as-store>
keyAlias=upload
storeFile=<absolute-or-relative-path-to-upload-keystore.jks>

Add to .gitignore:

keystore.properties
*.jks
*.keystore
local.properties

Step 3 — Configure Signing in Gradle

Claude knows Gradle signing config syntax. These are the traps:

  • isMinifyEnabled vs minifyEnabled: KTS requires the is prefix. Groovy does NOT. Wrong prefix = silent no-op — build succeeds, APK is unminified, 3x larger, and exposes source code. No error, no warning. This is the #1 Android release mistake.
  • isShrinkResources requires isMinifyEnabled: Resource shrinking without code minification silently does nothing. Always set both together.
  • signingConfigs before buildTypes: Gradle evaluates blocks in declaration order. Referencing a signingConfig before it's declared → build error.
  • rootProject.file() vs project.file(): keystore.properties lives in project root. rootProject = project root. project = app/ module. Wrong root = file not found silently, null properties at build time.

Kotlin DSL (app/build.gradle.kts)

import java.util.Properties
import java.io.FileInputStream

val keystoreProperties = Properties().apply {
    val file = rootProject.file("keystore.properties")
    if (file.exists()) load(FileInputStream(file))
}

android {
    signingConfigs {
        create("release") {
            keyAlias = keystoreProperties["keyAlias"] as String
            keyPassword = keystoreProperties["keyPassword"] as String
            storeFile = file(keystoreProperties["storeFile"] as String)
            storePassword = keystoreProperties["storePassword"] as String
        }
    }
    buildTypes {
        release {
            isMinifyEnabled = true
            isShrinkResources = true
            signingConfig = signingConfigs.getByName("release")
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
        }
    }
}

For Groovy DSL: same structure but use def keystoreProperties = new Properties(), untyped property access keystoreProperties['keyAlias'], minifyEnabled true (no is prefix), shrinkResources true, and signingConfig signingConfigs.release (no =).


Step 4 — ProGuard / R8 (Add Rules By Dependency)

R8 is NOT enabled by default in native Android — you must explicitly set isMinifyEnabled = true. Then add rules ONLY for libraries the project actually uses:

| Dependency | Needs rules? | Why | |------------|-------------|-----| | Retrofit | YES | Uses reflection for interface proxies | | OkHttp | YES | Uses reflection for platform detection | | Gson | YES | Deserializes via reflection on field names | | kotlinx.serialization | YES | Compiler plugin generates serializers that R8 strips | | Coroutines | YES | Internal classes loaded via ServiceLoader | | Room | NO | Annotation processor, compile-time only | | Hilt/Dagger | NO | Compile-time code generation | | Jetpack Compose | NO | Compose compiler handles it | | Coil/Glide | MAYBE | Only if using custom transformations |

When R8 reports Missing class: — copy rules from the error output verbatim. When a crash occurs only in release build — the stripped class is in the stack trace.

Common rules (add only what applies):

# Kotlin (always needed with minification)
-keep class kotlin.Metadata { *; }
-dontwarn kotlin.**

# Coroutines
-keepnames class kotlinx.coroutines.internal.MainDispatcherFactory {}
-keepnames class kotlinx.coroutines.CoroutineExceptionHandler {}
-keepclassmembers class kotlinx.coroutines.** { volatile <fields>; }

# kotlinx.serialization
-keepattributes *Annotation*, InnerClasses
-dontnote kotlinx.serialization.AnnotationsKt
-keepclassmembers class kotlinx.serialization.json.** { *** Companion; }
-keep,includedescriptorclasses class **$$serializer { *; }
-keepclassmembers class * { @kotlinx.serialization.Serializable *; }

# Retrofit + OkHttp
-keepattributes Signature, Exceptions
-keep class retrofit2.** { *; }
-keepclasseswithmembers class * { @retrofit2.http.* <methods>; }
-dontwarn okhttp3.**
-dontwarn okio.**

# Gson (consider migrating to kotlinx.serialization)
-keep class * extends com.google.gson.TypeAdapter
-keep class * implements com.google.gson.TypeAdapterFactory
-keepclassmembers,allowobfuscation class * {
    @com.google.gson.annotations.SerializedName <fields>;
}

Step 5 — Build Release AAB

./gradlew bundleRelease

Useful flags:

  • --stacktrace — full stack trace on R8/signing errors.
  • -Pandroid.injected.signing.store.file=... — override signing via CLI (CI use).
  • ./gradlew clean bundleRelease — clean before building after Gradle config changes.

Output: app/build/outputs/bundle/release/app-release.aab


Step 6 — Verify Before Upload

# Verify signing — confirm alias is "upload", NOT "androiddebugkey"
keytool -printcert -jarfile app/build/outputs/bundle/release/app-release.aab

# Verify version (requires bundletool)
bundletool dump manifest --bundle=app/build/outputs/bundle/release/app-release.aab \
  | grep -E "versionCode|versionName"

Checklist:

  • [ ] AAB signed with upload key (not debug) — debug key = #1 rejection reason
  • [ ] versionCode higher than the previous upload
  • [ ] keystore.properties and *.jks in .gitignore
  • [ ] isMinifyEnabled = true and isShrinkResources = true both set
  • [ ] ProGuard rules added only for reflection-heavy dependencies

NEVER Do

  1. NEVER use the wrong minify property name — KTS: isMinifyEnabled. Groovy: minifyEnabled. The wrong one compiles fine but is a silent no-op — your release build is unminified, 3x larger, and exposes full source code. No error, no warning. Test by checking AAB size.

  2. NEVER enable isShrinkResources without isMinifyEnabled — Resource shrinking depends on code minification to determine which resources are referenced. Without minify, shrink silently does nothing. Always set both.

  3. NEVER set different store/key passwords with PKCS12keytool silently uses store password for key. Different passwords → signing fails with "Cannot recover key" (misleading — it's a password mismatch, not a corrupt key).

  4. NEVER dump all ProGuard rules blindly — Add rules ONLY for libraries the project uses. Unnecessary -keep rules defeat the purpose of R8 by preventing dead code removal and increasing APK size.

  5. NEVER skip testing the signed AAB — R8 stripping is invisible until runtime. Install the release build on a real device and test all screens, especially those using serialization, reflection, or native code. Crashes that only appear in release builds are always R8-related.

  6. NEVER ignore lint errors by defaultabortOnError = false in lint {} block is a common workaround, but it hides real issues. Fix lint errors first. Only suppress specific lint IDs you've reviewed: disable += "SomeSpecificCheck".


Common Errors

| Error | Cause | Fix | |-------|-------|-----| | Missing class: ... during R8 | R8 strips classes used via reflection | Add -keep rules from error output | | NoSuchMethodError at runtime | R8 removed constructor needed by serialization | Add -keep for affected data class | | Serialization crash only in release | @Serializable classes stripped by R8 | Add kotlinx-serialization ProGuard rules | | Lint found errors blocking build | abortOnError is true by default | Fix lint issues or suppress specific IDs | | "debug certificate" rejection | Built without release signing config | Verify signingConfig in buildTypes.release | | Build succeeds but APK is huge | isMinifyEnabled silently not applied | Check property name matches DSL (is/no-is) |


Gotchas

  1. Java 17 is required for AGP 8+ — If build fails with "Unsupported class file major version", set org.gradle.java.home in gradle.properties to a JDK 17+ path. Or set JAVA_HOME in your shell environment.

  2. local.properties must not be committed — Contains machine-specific SDK path. Always in .gitignore. If it's committed and another dev has a different SDK path, builds fail with confusing "SDK not found" errors.

  3. App Signing by Google Play — Google re-signs your app with their app signing key. The keystore you generate is the upload key only. If you lose it, request a reset through Play Console (takes days, requires identity verification).

  4. Flavor-aware build commands — With productFlavors, bundleRelease builds ALL flavors. To build a specific one: ./gradlew bundleProdRelease (capitalize flavor name). The output path also changes: app/build/outputs/bundle/prodRelease/.

Contract & API

Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.

MissingGITHUB OPENCLEW

Contract coverage

Status

missing

Auth

None

Streaming

No

Data region

Unspecified

Protocol support

OpenClaw: self-declared

Requires: none

Forbidden: none

Guardrails

Operational confidence: low

No positive guardrails captured.
Invocation examples
curl -s "https://xpersona.co/api/v1/agents/tacuchi-playstore-android-native/snapshot"
curl -s "https://xpersona.co/api/v1/agents/tacuchi-playstore-android-native/contract"
curl -s "https://xpersona.co/api/v1/agents/tacuchi-playstore-android-native/trust"

Reliability & Benchmarks

Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.

Missingruntime-metrics

Trust signals

Handshake

UNKNOWN

Confidence

unknown

Attempts 30d

unknown

Fallback rate

unknown

Runtime metrics

Observed P50

unknown

Observed P95

unknown

Rate limit

unknown

Estimated cost

unknown

Do not use if

Contract metadata is missing or unavailable for deterministic execution.
No benchmark suites or observed failure patterns are available.

Media & Demo

Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.

Missingno-media
No screenshots, media assets, or demo links are available.

Related Agents

Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.

Self-declaredprotocol-neighbors
GITHUB_REPOSactivepieces

Rank

70

AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents

Traction

No public download signal

Freshness

Updated 2d ago

OPENCLAW
GITHUB_REPOScherry-studio

Rank

70

AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs

Traction

No public download signal

Freshness

Updated 6d ago

MCPOPENCLAW
GITHUB_REPOSAionUi

Rank

70

Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!

Traction

No public download signal

Freshness

Updated 6d ago

MCPOPENCLAW
GITHUB_REPOSCopilotKit

Rank

70

The Frontend for Agents & Generative UI. React + Angular

Traction

No public download signal

Freshness

Updated 23d ago

OPENCLAW
Machine Appendix

Contract JSON

{
  "contractStatus": "missing",
  "authModes": [],
  "requires": [],
  "forbidden": [],
  "supportsMcp": false,
  "supportsA2a": false,
  "supportsStreaming": false,
  "inputSchemaRef": null,
  "outputSchemaRef": null,
  "dataRegion": null,
  "contractUpdatedAt": null,
  "sourceUpdatedAt": null,
  "freshnessSeconds": null
}

Invocation Guide

{
  "preferredApi": {
    "snapshotUrl": "https://xpersona.co/api/v1/agents/tacuchi-playstore-android-native/snapshot",
    "contractUrl": "https://xpersona.co/api/v1/agents/tacuchi-playstore-android-native/contract",
    "trustUrl": "https://xpersona.co/api/v1/agents/tacuchi-playstore-android-native/trust"
  },
  "curlExamples": [
    "curl -s \"https://xpersona.co/api/v1/agents/tacuchi-playstore-android-native/snapshot\"",
    "curl -s \"https://xpersona.co/api/v1/agents/tacuchi-playstore-android-native/contract\"",
    "curl -s \"https://xpersona.co/api/v1/agents/tacuchi-playstore-android-native/trust\""
  ],
  "jsonRequestTemplate": {
    "query": "summarize this repo",
    "constraints": {
      "maxLatencyMs": 2000,
      "protocolPreference": [
        "OPENCLEW"
      ]
    }
  },
  "jsonResponseTemplate": {
    "ok": true,
    "result": {
      "summary": "...",
      "confidence": 0.9
    },
    "meta": {
      "source": "GITHUB_OPENCLEW",
      "generatedAt": "2026-04-17T04:15:50.121Z"
    }
  },
  "retryPolicy": {
    "maxAttempts": 3,
    "backoffMs": [
      500,
      1500,
      3500
    ],
    "retryableConditions": [
      "HTTP_429",
      "HTTP_503",
      "NETWORK_TIMEOUT"
    ]
  }
}

Trust JSON

{
  "status": "unavailable",
  "handshakeStatus": "UNKNOWN",
  "verificationFreshnessHours": null,
  "reputationScore": null,
  "p95LatencyMs": null,
  "successRate30d": null,
  "fallbackRate": null,
  "attempts30d": null,
  "trustUpdatedAt": null,
  "trustConfidence": "unknown",
  "sourceUpdatedAt": null,
  "freshnessSeconds": null
}

Capability Matrix

{
  "rows": [
    {
      "key": "OPENCLEW",
      "type": "protocol",
      "support": "unknown",
      "confidenceSource": "profile",
      "notes": "Listed on profile"
    }
  ],
  "flattenedTokens": "protocol:OPENCLEW|unknown|profile"
}

Facts JSON

[
  {
    "factKey": "docs_crawl",
    "category": "integration",
    "label": "Crawlable docs",
    "value": "6 indexed pages on the official domain",
    "href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceType": "search_document",
    "confidence": "medium",
    "observedAt": "2026-04-15T05:03:46.393Z",
    "isPublic": true
  },
  {
    "factKey": "vendor",
    "category": "vendor",
    "label": "Vendor",
    "value": "Tacuchi",
    "href": "https://github.com/Tacuchi/playstore-android-native",
    "sourceUrl": "https://github.com/Tacuchi/playstore-android-native",
    "sourceType": "profile",
    "confidence": "medium",
    "observedAt": "2026-04-15T00:19:44.643Z",
    "isPublic": true
  },
  {
    "factKey": "protocols",
    "category": "compatibility",
    "label": "Protocol compatibility",
    "value": "OpenClaw",
    "href": "https://xpersona.co/api/v1/agents/tacuchi-playstore-android-native/contract",
    "sourceUrl": "https://xpersona.co/api/v1/agents/tacuchi-playstore-android-native/contract",
    "sourceType": "contract",
    "confidence": "medium",
    "observedAt": "2026-04-15T00:19:44.643Z",
    "isPublic": true
  },
  {
    "factKey": "handshake_status",
    "category": "security",
    "label": "Handshake status",
    "value": "UNKNOWN",
    "href": "https://xpersona.co/api/v1/agents/tacuchi-playstore-android-native/trust",
    "sourceUrl": "https://xpersona.co/api/v1/agents/tacuchi-playstore-android-native/trust",
    "sourceType": "trust",
    "confidence": "medium",
    "observedAt": null,
    "isPublic": true
  }
]

Change Events JSON

[
  {
    "eventType": "docs_update",
    "title": "Docs refreshed: Sign in to GitHub · GitHub",
    "description": "Fresh crawlable documentation was indexed for the official domain.",
    "href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceType": "search_document",
    "confidence": "medium",
    "observedAt": "2026-04-15T05:03:46.393Z",
    "isPublic": true
  }
]

Sponsored

Ads related to playstore-android-native and adjacent AI workflows.