跳到正文
cccskills
免费在 GitHub 公开

setup-test-stores

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. Use when Maestro setup is missing, when .env.local points at an expired store, or when a clean store is wanted.

中文简介正在准备中。当前显示原文说明。

集成工具WordPress
查看安装方法

包含的文件(1)

  • SKILL.md5.0 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Set up a Maestro test store

Provisions a Jurassic Ninja (JN) site and configures it as the Maestro lab store. Site creation is only possible through the jurassic-ninja ContextA8C MCP, so this skill drives that part; everything after "site exists and its password is known" is handled by .maestro/scripts/setup-jn-store.sh, which a developer can also run by hand against a site created in a browser.

Prerequisites

  • ContextA8C MCP configured with the jurassic-ninja provider.
  • wc.oauth.app_id and wc.oauth.app_secret present in ~/.configure/woocommerce-android/secrets/secrets.properties (see Environment Setup in AGENTS.md).
  • expect on PATH (ships with macOS) for password-based SSH.
  • A WordPress.com test account with two-factor authentication disabled. The OAuth password grant used to connect Jetpack cannot answer a 2FA challenge non-interactively. Never use a personal or production account. The account is read from .env.local, or from MAESTRO_WOO_LAB_WPCOM_EMAIL / MAESTRO_WOO_LAB_WPCOM_PASSWORD in the environment; see step 0.

Steps

  1. Make sure the WordPress.com account is available. The script needs a test account to connect Jetpack to, and it cannot prompt when run by an agent because there is no terminal attached; it will exit with a message naming what is missing.

    If .env.local has no MAESTRO_WOO_LAB_WPCOM_EMAIL / MAESTRO_WOO_LAB_WPCOM_PASSWORD, stop and ask the user to either add those two lines themselves, or run the script directly in their own terminal, where it prompts without echoing:

    .maestro/scripts/setup-jn-store.sh --site <domain>.jurassic.ninja
    

    Do not ask the user to paste a password into the conversation, and never pass one as a command-line argument.

  2. Check whether setup is already usable. If .maestro/.env.local exists, probe the store in one bash call that sources the file, so no credential is read into the chat:

    ( set -a; . .maestro/.env.local; set +a
      curl -s -o /dev/null -w '%{http_code}' \
        -u "${MAESTRO_WOO_LAB_CONSUMER_KEY:-$MAESTRO_WOO_CONSUMER_KEY}:${MAESTRO_WOO_LAB_CONSUMER_SECRET:-$MAESTRO_WOO_CONSUMER_SECRET}" \
        "$MAESTRO_WOO_LAB_JETPACK_STORE_URL/wp-json/wc/v3/products?per_page=1" )
    

    A 200 means the store is alive and the keys work; report that and stop, unless the user passed --fresh. Anything else means the store is gone or expired: continue, and reuse the existing WP.com account lines rather than asking for them again.

  3. Provision the site.

    provision-site  features: {"woocommerce":"true","woocommerce-import-sample-data":"true","jetpack":"true"}
    

    Note the returned domain.

  4. Fetch its password.

    list-sites  domain: <domain>, include_passwords: true, include_config: true
    

    JN_PASSWORD in the returned config is both the wp-admin and the SSH password. The admin username is demo.

    Do not echo these values in your reply.

  5. Configure the store. Pass the password through the environment so it never lands in ps output:

    JN_SSH_PASS='<JN_PASSWORD>' .maestro/scripts/setup-jn-store.sh --site <domain>
    

    The script waits for JN to finish provisioning (it answers HTTP before its plugins finish installing), connects Jetpack, creates the API keys, and writes .maestro/.env.local.

    This assumes .env.local already has MAESTRO_WOO_LAB_WPCOM_EMAIL and MAESTRO_WOO_LAB_WPCOM_PASSWORD. If it does not, see step 0.

  6. Report the store URL and blog ID. Do not print any credential.

Verifying

.maestro/scripts/lint-env.py

What the provisioned store supports

A fresh store has the WooCommerce sample products. The script tops it up to 100 products and 100 completed orders, and adds one customer and a maestro10 coupon, so the product, order and dashboard flows run against it.

The negative-login fixtures (MAESTRO_WOO_NOT_A_WOO_STORE_*, MAESTRO_WOO_WRONG_ACCOUNT_STORE_URL) are shared read-only sites from the smoke testing guide and are filled in by hand.

Notes

  • JN sites expire after 7 days of inactivity. Re-run this skill when a store stops responding; it reuses the WordPress.com account already in .env.local.
  • Only test stores and test accounts. Destructive flows publish and delete real data.
  • The previous .env.local is backed up outside the repository, because .gitignore matches .env.local exactly and a sibling backup file would not be ignored.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Repair a failing WooCommerce Android Maestro flow by reproducing it against the store it runs on, inspecting Maestro selectors, patching the smallest selector/wait/setup issue, and rerunning with repeat evidence. Human-triggered only.

中文简介正在准备中。当前显示原文说明。

woocommerce/woocommerce-android3192026年10月17日 更新

pos

免费

POS (Point of Sale) architecture and patterns. Use when writing, editing, exploring, debugging, fixing bugs, implementing features, or reviewing WooPos-prefixed classes or files under ui/woopos/. POS uses a different architecture than the main app — plain ViewModel (not ScopedViewModel), pure Compose (no Fragments), Compose Navigation (no nav graphs), parent-child SharedFlow event bus. Loading this skill prevents applying main-app patterns that would be wrong for POS. For analytics use `pos-analytics`, for tests use `pos-tests`.

中文简介正在准备中。当前显示原文说明。

woocommerce/woocommerce-android3192026年10月17日 更新

POS analytics tracking patterns (WooPosAnalyticsEvent sealed class, WooPosAnalyticsTracker, WooPosAnalyticsEventConstant). Use when writing, editing, exploring, debugging, or reviewing analytics tracking in POS (WooPos*) code. NOT for main store app — use the `store-analytics` skill instead.

中文简介正在准备中。当前显示原文说明。

woocommerce/woocommerce-android3192026年10月17日 更新

pos-tests

免费

POS unit testing patterns (WooPosCoroutineTestRule, runTest, advanceUntilIdle, mockito-kotlin, event bus mocking, analytics verification). Use when writing, editing, exploring, debugging, or reviewing unit tests for POS (WooPos*) code. NOT for main store app tests — use the `store-tests` skill instead.

中文简介正在准备中。当前显示原文说明。

woocommerce/woocommerce-android3192026年10月17日 更新

pr

免费

Create a pull request following project conventions. Triggers on any request to create, open, make, submit, file, send, push, spin up, put up, draft, raise, or prepare a PR/pull request.

中文简介正在准备中。当前显示原文说明。

woocommerce/woocommerce-android3192026年10月17日 更新

Address PR reviewer feedback by evaluating comments, proposing fixes, and executing after user approval. Use when the user wants to handle review comments on an existing PR, address PR feedback, fix PR comments, respond to reviewer suggestions, or process code review feedback. Triggers on "address PR feedback", "handle review comments", "fix PR comments", "respond to PR review", "process reviewer feedback", or when given a PR number/URL with intent to address its comments.

中文简介正在准备中。当前显示原文说明。

woocommerce/woocommerce-android3192026年10月17日 更新

查看 woocommerce 的全部技能

报告此技能的问题