Run Jetpack Android App
wordpress-mobile/WordPress-Android
Builds the Jetpack debug app with Gradle and installs it on a connected Android device or an emulator started from an available AVD.
Run the Android AI Assistant headless smoke regression harness without launching UI.
$ npx skills add woocommerce/woocommerce-android --skill woo-ai-smoke -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install woocommerce/woocommerce-android woo-ai-smoke --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/woocommerce/woocommerce-android.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/woo-ai-smoke .claude/skills/woo-ai-smoke && 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 "woo-ai-smoke" agent skill from https://github.com/woocommerce/woocommerce-android/tree/trunk/.agents/skills/woo-ai-smoke into .claude/skills/woo-ai-smoke/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "woo-ai-smoke", 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/woocommerce/woocommerce-android/tree/trunk/.agents/skills/woo-ai-smokeType 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 woocommerce/woocommerce-android --skill woo-ai-smoke -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install woocommerce/woocommerce-android woo-ai-smoke --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/woocommerce/woocommerce-android.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/woo-ai-smoke .agents/skills/woo-ai-smoke && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "woo-ai-smoke" agent skill from https://github.com/woocommerce/woocommerce-android/tree/trunk/.agents/skills/woo-ai-smoke into .agents/skills/woo-ai-smoke/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "woo-ai-smoke", 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 woocommerce/woocommerce-android --skill woo-ai-smoke -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install woocommerce/woocommerce-android woo-ai-smoke --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/woocommerce/woocommerce-android.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/woo-ai-smoke .cursor/skills/woo-ai-smoke && 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 "woo-ai-smoke" agent skill from https://github.com/woocommerce/woocommerce-android/tree/trunk/.agents/skills/woo-ai-smoke into .cursor/skills/woo-ai-smoke/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "woo-ai-smoke", 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/woocommerce/woocommerce-android.git --path .agents/skills/woo-ai-smoke--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 woocommerce/woocommerce-android --skill woo-ai-smoke -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install woocommerce/woocommerce-android woo-ai-smoke --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/woocommerce/woocommerce-android.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/woo-ai-smoke .gemini/skills/woo-ai-smoke && 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 "woo-ai-smoke" agent skill from https://github.com/woocommerce/woocommerce-android/tree/trunk/.agents/skills/woo-ai-smoke into .gemini/skills/woo-ai-smoke/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "woo-ai-smoke", 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 woocommerce/woocommerce-android woo-ai-smokeInstalls 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 woocommerce/woocommerce-android --skill woo-ai-smoke -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/woocommerce/woocommerce-android.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/woo-ai-smoke .github/skills/woo-ai-smoke && 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 "woo-ai-smoke" agent skill from https://github.com/woocommerce/woocommerce-android/tree/trunk/.agents/skills/woo-ai-smoke into .github/skills/woo-ai-smoke/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "woo-ai-smoke", 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 woocommerce/woocommerce-android --skill woo-ai-smoke -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install woocommerce/woocommerce-android woo-ai-smoke --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/woocommerce/woocommerce-android.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/woo-ai-smoke .opencode/skills/woo-ai-smoke && 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 "woo-ai-smoke" agent skill from https://github.com/woocommerce/woocommerce-android/tree/trunk/.agents/skills/woo-ai-smoke into .opencode/skills/woo-ai-smoke/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "woo-ai-smoke", 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.
woo-ai-smokeRun the Android AI Assistant headless smoke regression harness without launching UI.
Woo AI Smoke is an agent skill from woocommerce/woocommerce-android. Run the Android AI Assistant headless smoke regression harness without launching UI.
Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Mobile. It works with Android, WooCommerce and WordPress. The repository describes itself as: WooCommerce Android app. The licence is GPL-2.0.
Read from SKILL.md and the folder at commit be5a50f. 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:
jqFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
WOO_WPCOM_PASSWORDFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Woo AI Smoke loads about 2.5k tokens when it runs. Until then it costs about 24 tokens; SKILL.md has 954 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 woocommerce/woocommerce-android at commit be5a50f, republished under its GPL-2.0 licence (© woocommerce). 954 words, ~2,541 tokens.
.claude/skills/woo-ai-smoke/SKILL.md (or your agent's skills folder).The live suite mirrors the iOS /woo-ai-smoke scenario list from
woocommerce/woocommerce-ios#17016: 25 scripted scenarios. The Android Robolectric test produces
the trace artifacts and enforces the deterministic baseline gate.
If ~/.woo-ai-smoke/store.env does not exist, create it with these keys and stop so the developer
can fill it in outside the repo:
WOO_SITE_URL=
WOO_WPCOM_USERNAME=
WOO_WPCOM_PASSWORD=The target store must be Jetpack-connected and connected to the same WordPress.com account used by
WOO_WPCOM_USERNAME.
WOO_WPCOM_PASSWORD may be a WordPress.com Application Password when the account requires 2FA. The
smoke harness does not implement an interactive 2FA challenge.
Live chat routes through the WPCOM wrapper endpoint
/wpcom/v2/woo-mobile-ai/chat/completions with a WordPress.com OAuth bearer. Store tools still
target WOO_SITE_URL through the WPCOM REST / Jetpack-connected path.
Never print the file contents, expanded env, WPCOM username, WPCOM password/Application Passwords, WPCOM bearer tokens, cookies, or raw credential config.
while IFS='=' read -r key value; do
case "$key" in
WOO_SITE_URL|WOO_WPCOM_USERNAME|WOO_WPCOM_PASSWORD) export "$key=$value" ;;
esac
done < "$HOME/.woo-ai-smoke/store.env"
./gradlew -PwooAiSmokeRunLive=true :libs:ai-assistant:feature:testDebugUnitTest \
--tests "*.WooAiSmokeLiveRobolectricTest"Optional focused/debug controls:
WOO_AI_SMOKE_SCENARIO_ID=orders_with_email WOO_AI_SMOKE_SAMPLES=3 \
./gradlew -PwooAiSmokeRunLive=true :libs:ai-assistant:feature:testDebugUnitTest \
--tests "*.WooAiSmokeLiveRobolectricTest"WOO_AI_SMOKE_SCENARIO_ID supports a comma-separated list for the check test entrypoint.
Approval uses the separate WooAiSmokeLiveRobolectricApprovalTest entrypoint, must run the full
suite, and rejects scenario filters. WOO_AI_SMOKE_SAMPLES supports 1..3. In check runs,
primary scenario status and JUnit failure use sample 1. Baseline comparison also uses sample 1
unless the checked-in baseline contains an approved sampleExpectation or knownFailure.
sampleExpectation checks compare the sampled classification and requested sample count; approved
knownFailure checks compare every failing sample's failed hard-check set against
knownFailure.expectedFailedHardChecks. Approved FLAKY is a sampled-run tolerance for acceptable
scenario-specific variability: sampled FLAKY remains non-blocking only while global guards still
pass, sampled PASS asks for a baseline refresh, and single-sample FAIL is blocking because one
sample cannot prove flakiness.
Artifacts are written to:
libs/ai-assistant/feature/build/outputs/woo-ai-smoke/live/latestAfter the run, always read run.json, turns.jsonl, and baseline-comparison.json from that
directory and include a scenario recap plus an iOS-style Rubric table in the final response. The
recap must show every scenario, the run result, sampled classification when present, and the
comparison against the checked-in baseline. Do not paste raw turns.jsonl, credentials, WPCOM
bearer tokens, cookies, or expanded environment values.
KNOWN_FAILURE in the baseline column is an accepted, explicitly documented live failure; include
it in the recap instead of converting it to PASS. KNOWN_FAILURE_FIXED is non-blocking but means the
baseline exception should be removed after review. Any REGRESSION, NEW, or MISSING status
still needs triage.
Every scenario also has global guards for no FAILED outcome, no turn errors, and non-blank
assistant text. Empty/error outputs should never be treated as passing just because negative checks
passed.
Use this helper when the artifact files exist:
RUN_DIR="libs/ai-assistant/feature/build/outputs/woo-ai-smoke/live/latest"
jq -r --slurpfile comparison "$RUN_DIR/baseline-comparison.json" '
def tool_summary($scenario):
[
$scenario.result.turns[]
| .toolCalls[]
| "\(.name)(\(.resultKind))"
] | if length == 0 then "none" else join(", ") end;
def outcomes($scenario):
[$scenario.result.turns[].outcome] | unique | join("/");
def sampled($scenario):
if $scenario.sampleSummary == null then "n/a"
else "\($scenario.sampleSummary.classification) (PASS=\($scenario.sampleSummary.passCount) FAIL=\($scenario.sampleSummary.failCount))"
end;
($comparison[0].scenarioStatuses
| map({ key: .scenarioId, value: { status: .status, message: .message } })
| from_entries) as $baseline
| "| Scenario | Category | Result | Sampled | Baseline | Outcome | Tools |",
"| --- | --- | --- | --- | --- | --- | --- |",
(.scenarios[] |
($baseline[.scenarioId] // { status: "MISSING", message: "No baseline comparison." }) as $b
| "| \(.scenarioId) | \(.category) | \(.status) | \(sampled(.)) | \($b.status): \($b.message) | \(outcomes(.)) | \(tool_summary(.)) |"
)
' "$RUN_DIR/run.json"If the Gradle command fails before artifacts are written, say that no scenario recap is available and include the failure reason instead.
while IFS='=' read -r key value; do
case "$key" in
WOO_SITE_URL|WOO_WPCOM_USERNAME|WOO_WPCOM_PASSWORD) export "$key=$value" ;;
esac
done < "$HOME/.woo-ai-smoke/store.env"
WOO_AI_SMOKE_SAMPLES=3 \
./gradlew -PwooAiSmokeRunLive=true :libs:ai-assistant:feature:testDebugUnitTest \
--tests "*.WooAiSmokeLiveRobolectricApprovalTest"Approval mode accepts WOO_AI_SMOKE_SAMPLES=1..3 and still rejects scenario filters. A sampled
approval writes a sampleExpectation for all-pass and mixed pass/fail scenarios: all-pass samples
approve PASS, mixed pass/fail samples approve FLAKY, and all-fail samples are rejected unless
an existing knownFailure is being preserved because every failing sample has the same expected
failed hard-check set. Preserved known-failure approvals do not write sampleExpectation. Approved
FLAKY is separate from knownFailure; it does not accept failed outcomes, turn errors, or blank
assistant responses.
If live auth fails with a 2FA-required message, tell the operator to use a WordPress.com
Application Password as WOO_WPCOM_PASSWORD. If site resolution fails, verify the target store is
connected to the same WordPress.com account and is Jetpack-connected.
After reviewer inspection:
cp \
libs/ai-assistant/feature/build/outputs/woo-ai-smoke/live/latest/approved-live-baseline.json \
libs/ai-assistant/feature/src/testDebug/resources/woo-ai-smoke/live-baseline.jsonAfter an approval run, print the same scenario recap table from
libs/ai-assistant/feature/build/outputs/woo-ai-smoke/live/latest. Also state whether
approved-live-baseline.json was produced. Approval can preserve an existing knownFailure entry
only when every failing sample still has the same expected failed hard-check set, but new failures
must not be added by hand without a reason and expected failed hard checks. If a scenario is
intentionally flaky, approve it with sampled approval so the checked-in baseline records the FLAKY
sample expectation instead of hiding it as a known failure.
./gradlew :libs:ai-assistant:feature:testDebugUnitTest --tests "*.WooAiSmokeDeterministicSupportTest"Deterministic support tests validate harness wiring only. They are not accepted primary smoke evidence and must not be used to approve the live baseline. They do not use a deterministic baseline; fake-chat/fake-tool failures fail directly.
Do not make Gradle, CI, or the Kotlin baseline comparison depend on a model judge. After artifacts
exist, the final response must include a separate Rubric section based only on redacted artifacts:
run.json, turns.jsonl, and baseline-comparison.json.
The report must clearly separate:
Deterministic gate: scenario status, failed hard checks, and baseline comparison. This is the
merge-blocking result.Rubric: iOS-style 0/1/2 scoring from traces and scenario intent. These scores are reviewer
guidance and are not the Kotlin/JUnit gate.Score each scenario, or each turn when a scenario has materially different turn outcomes, using:
2: correct / well-grounded / appropriate / recovered or no recovery needed.1: partially correct or minor issue that reviewers should inspect.0: incorrect, unsupported, wrong tool/safety behavior, or failed recovery.Use these dimensions:
Correct: answers the merchant's request and follows scenario-specific requirements.Grounded: user-facing claims are supported by tool traces or explicit tool failures.Tools: tool choices, safety behavior, and write-confirmation handling fit the scenario.Recovery: handles errors, declines, empty results, and clarification needs appropriately.The Rubric table must include deterministic status in the same row so reviewers get one cohesive
report:
| Scenario | Gate | Sampled | Baseline | Correct | Grounded | Tools | Recovery | Notes |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| orders_with_email | PASS | n/a | PASS | 2 | 2 | 2 | 2 | Email appears only when supported by the orders tool result. |Gate is the primary scenario status from run.json. Sampled is PASS, FAIL, FLAKY, or
n/a from sampleSummary when present. Baseline is the scenario status from
baseline-comparison.json. Notes should be short and should call out failed hard checks,
baseline regressions, sampled flakiness, tool mismatch, unsupported claims, or recovery concerns.
For the spanish scenario, Android keeps the same hard-check floor as iOS: turn 1 contains
pedido|pedidos, and turn 2 contains ayer. The rubric must flag user-facing English or
mixed-language replies as a Correct issue because the scenario expects Spanish throughout. Do not
add deterministic negative English substring checks for this; full-language review belongs in the
rubric.
© woocommerce, GPL-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/woo-ai-smoke of woocommerce/woocommerce-android.
Open the folder on GitHubat commit be5a50f
Woo AI Smoke 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 |
|---|---|---|---|---|---|---|
| Woo AI Smoke this skillwoocommerce/woocommerce-android | 319 | — | ~2.5k | Automated safety check: Pass | GPL-2.0 | |
| Run Jetpack Android Appwordpress-mobile/WordPress-Android | 3.2k | — | ~886 | Automated safety check: Pass | GPL-2.0 | |
| Auto Loginwoocommerce/woocommerce-ios | 358 | — | ~1.3k | Automated safety check: Notes | GPL-2.0 | |
| WooCommerce Code Reviewwoocommerce/woocommerce | 11k | 3 repos | ~1.1k | Automated safety check: Pass | Custom licence | |
| WooCommerce Email Editor Developmentwoocommerce/woocommerce | 11k | — | ~893 | Automated safety check: Pass | Custom licence | |
| WooCommerce Dev Cyclewoocommerce/woocommerce | 11k | 3 repos | ~431 | Automated safety check: Pass | Custom licence |
wordpress-mobile/WordPress-Android
Builds the Jetpack debug app with Gradle and installs it on a connected Android device or an emulator started from an available AVD.
woocommerce/woocommerce-ios
Launch the WooCommerce app on a simulator already authenticated into a given store (site credentials, application password, or WPCom), skipping the manual login UI.
woocommerce/woocommerce
Reviews WooCommerce code changes against the project's standards, flagging backend PHP architecture, naming, documentation, data integrity and testing violations.
woocommerce/woocommerce
Sets up a local environment for the WooCommerce block email editor, with a watcher, Mailpit email capture and build and test commands for its PHP and JS packages.
woocommerce/woocommerce
Workflow for WooCommerce development: run PHP and JavaScript tests, lint and fix code style on the current branch, and follow guides for i18n and markdown.
amElnagdy/guard-skills
Reviews generated or changed WooCommerce code for HPOS safety, CRUD use, checkout validation and money handling before it ships.
woocommerce/woocommerce-android
Create a pull request following project conventions. An agent skill from woocommerce/woocommerce-android.
woocommerce/woocommerce-android
Address PR reviewer feedback by evaluating comments, proposing fixes, and executing after user approval.
woocommerce/woocommerce-android
Provision a disposable Jurassic Ninja store for the Maestro smoke suite, connect Jetpack to the developer's own WordPress.com test account, create WooCommerce API keys, and write .maestro/.env.local.
woocommerce/woocommerce-android
Generate screenshot coverage for screen-level Compose previews from the current diff or a specific target, check required visual and data variations, and produce a compact visual report
woocommerce/woocommerce-android
Review code changes against project architecture, style, and conventions
woocommerce/woocommerce-android
Prepare the local environment for the Maestro smoke-test suite — verify tooling, select a device, collect the APK if needed, validate the .env file by variable name only, then hand the user the…
Works with
Categories
Run the Android AI Assistant headless smoke regression harness without launching UI. Woo AI Smoke is an agent skill from woocommerce/woocommerce-android. Run the Android AI Assistant headless smoke regression harness without launching UI.
Woo AI Smoke fits situations like: mobile work in your project.
Run `npx skills add woocommerce/woocommerce-android --skill woo-ai-smoke -a claude-code`. Or copy the skill folder (.agents/skills/woo-ai-smoke in woocommerce/woocommerce-android) into .claude/skills/woo-ai-smoke in your project. Claude Code loads it when a task matches its description.
Run `npx skills add woocommerce/woocommerce-android --skill woo-ai-smoke -a codex`. Or copy the skill folder (.agents/skills/woo-ai-smoke in woocommerce/woocommerce-android) into .agents/skills/woo-ai-smoke 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 woocommerce/woocommerce-android --skill woo-ai-smoke -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/woo-ai-smoke, .gemini/skills/woo-ai-smoke, .github/skills/woo-ai-smoke and .opencode/skills/woo-ai-smoke in your project.
Going by SKILL.md and its folder, Woo AI Smoke needs the command-line tools its instructions call (jq) and credentials named WOO_WPCOM_PASSWORD.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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.
Woo AI Smoke is published under the GPL-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.5k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Woo AI Smoke: Run Jetpack Android App (wordpress-mobile/WordPress-Android, 3.2k stars), Auto Login (woocommerce/woocommerce-ios, 358 stars), WooCommerce Code Review (woocommerce/woocommerce, 11k stars) and WooCommerce Email Editor Development (woocommerce/woocommerce, 11k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
woocommerce (a GitHub organization) maintains it in woocommerce/woocommerce-android, which has 319 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on October 9, 2026.
Source: woocommerce/woocommerce-android on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.