Skip to main content

pp-shopper

Every Shopper storefront in one CLI — catalog, cart, delivery schedule, charge calendar, and spend analytics no web UI surfaces. Trigger phrases: `check my Shopper basket`, `when is my next Shopper delivery`, `when will Shopper charge me`, `show my Shopper spend`, `use shopper-pp-cli`, `search Shopper catalog`, `add item to Shopper cart`, `Shopper charge calendar`, `Shopper cashback tier`.

소스 정보

저장소
mvanhorn/printing-press-library
최근 소스 활동
2026년 8월 6일 07:36
감지된 SKILL.md 언어
영어
스타
1,918
포크
572

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
pp-shopper
description
Every Shopper storefront in one CLI — catalog, cart, delivery schedule, charge calendar, and spend analytics no web UI surfaces. Trigger phrases: `check my Shopper basket`, `when is my next Shopper delivery`, `when will Shopper charge me`, `show my Shopper spend`, `use shopper-pp-cli`, `search Shopper catalog`, `add item to Shopper cart`, `Shopper charge calendar`, `Shopper cashback tier`.
author
educrvz
license
Apache-2.0
argument-hint
<command> [args] | install cli|mcp
allowed-tools
Read Bash
metadata
{"openclaw":{"requires":{"bins":"[Truncated]"},"install":["[Truncated]"]}}
<!-- GENERATED FILE — DO NOT EDIT. This file is a verbatim mirror of library/commerce/shopper/SKILL.md, regenerated post-merge by tools/generate-skills/. Hand-edits here are silently overwritten on the next regen. Edit the library/ source instead. See the repository agent guide, section "Generated artifacts: registry.json, cli-skills/". --> # Shopper — Printing Press CLI ## Prerequisites: Install the CLI This skill drives the `shopper-pp-cli` binary. **You must verify the CLI is installed before invoking any command from this skill.** If it is missing, install it first: 1. Install via the Printing Press installer. It defaults binaries to `$HOME/.local/bin` on macOS/Linux and `%LOCALAPPDATA%\Programs\PrintingPress\bin` on Windows: ```bash npx -y @mvanhorn/printing-press-library install shopper --cli-only ``` 2. Verify: `shopper-pp-cli --version` 3. Ensure the reported install directory is on `$PATH` for the agent/runtime that will invoke this skill. If the `npx` install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.26.5 or newer). This installs into `$GOPATH/bin` (default `$HOME/go/bin`), so add that directory to `$PATH` instead: ```bash go install github.com/mvanhorn/printing-press-library/library/commerce/shopper/cmd/shopper-pp-cli@latest ``` If `--version` reports "command not found" after install, the runtime cannot see the binary directory on `$PATH`. Do not proceed with skill commands until verification succeeds. shopper-pp-cli covers all six Shopper storefronts (Compra Programada, Fresh, Pet, Compra Única, Now, Now Bebidas) with correct store/cluster scoping, full siteapi REST surface, browser-deep-link helpers for subscription mutations, and a local SQLite layer for offline product search, basket diffs, price tracking, and cross-store spend rollup. ## When to Use This CLI Use shopper-pp-cli when automating Shopper basket management, monitoring charge schedules, analyzing spend patterns across storefronts, or building agent workflows around the Shopper subscription cycle. Ideal for recurring-basket optimization, pre-cycle audit, and delivery-schedule awareness. ## Anti-triggers Do not use this CLI for: - Do not use for placing orders or confirming checkout — use checkout open to hand off to the browser - Do not use for adding or removing saved credit cards — card management requires browser session - Do not use for ultra-fast delivery slot selection on now/now-bebidas — delivery slots for these stores require the browser checkout flow - Do not use for cancelling orders — cancellation is not available via siteapi REST ## Unique Capabilities These capabilities aren't available in any other tool for this API. ### Subscription intelligence - **`charge-calendar`** — Every upcoming cycle's charge date, edit-lock deadline, and delivery date in one timeline so you never miss an edit window or get surprised by a charge. _Use when an agent needs to know whether the edit window is still open before modifying a recurring basket._ ```bash shopper-pp-cli charge-calendar --store programada --agent ``` - **`basket diff`** — Compares your current recurring basket against a previous cycle's snapshot to show exactly what was added, dropped, or re-quantified before the template locks. _Use when an agent needs to verify what changed in the basket since the last confirmed delivery cycle._ ```bash shopper-pp-cli basket diff --store programada --agent ``` - **`cashback optimize`** — Computes the cheapest set of items to add (or whether to wait) to cross the next cashback tier, favoring things you'll need anyway. _Use when an agent is finalising a basket and wants to maximise cashback return before the edit window closes._ ```bash shopper-pp-cli cashback optimize --tier 2399 --store programada --agent ``` ### Local state that compounds - **`price-watch`** — Tracks the price history of the SKUs you actually buy and alerts when one rises or drops meaningfully versus your own purchase baseline. _Use when an agent needs to know if a subscribed product has changed price significantly since the last order._ ```bash shopper-pp-cli price-watch --store programada --agent ``` - **`restock predict`** — Predicts when you'll run out of each staple from your historical buying cadence and suggests what to add to the upcoming basket. _Use when an agent needs to pre-populate a recurring basket with items likely running low before the next cycle._ ```bash shopper-pp-cli restock predict --store programada --agent ``` - **`catalog drift`** — Flags products you buy that were discontinued, silently swapped, or kept their price while shrinking the pack, surfacing the real R$/kg or R$/L change. _Use when an agent needs to audit whether the recurring basket still contains the same products as originally added._ ```bash shopper-pp-cli catalog drift --store programada --agent ``` ### Customer journey plumbing - **`checkout preview`** — Aggregates cart totals, next delivery date, charge date, minimum-order status, and accepted payment types into one pre-checkout view before you open the browser. _Use when an agent needs to confirm basket readiness and charge schedule before directing the user to open the browser for final payment._ ```bash shopper-pp-cli checkout preview --store programada --agent ``` ## Command Reference **address** — Saved delivery addresses with per-address available-store information - `shopper-pp-cli address` — List delivery addresses and which stores are available at each address **cart** — Cart: view summary, add products, remove products - `shopper-pp-cli cart add` — Add a product to the cart or increase its quantity - `shopper-pp-cli cart list-summary` — Show current basket: items, quantities, totals, cashback, and minimum-order status - `shopper-pp-cli cart remove` — Remove a product from the cart or decrease its quantity **catalog** — Product catalog: search, departments, banners, suggestions - `shopper-pp-cli catalog create-count` — Count products matching a search query and optional filters - `shopper-pp-cli catalog create-filters` — Get available filter options for a search query - `shopper-pp-cli catalog create-search` — Search the product catalog by query with optional brand/type/metadata filters - `shopper-pp-cli catalog get-view` — Get details for a specific catalog banner - `shopper-pp-cli catalog list-banners` — List promotional banners for the current store - `shopper-pp-cli catalog list-departments` — List product departments/categories for the current store - `shopper-pp-cli catalog list-news` — List new product arrivals for the current store - `shopper-pp-cli catalog list-suggest` — Get search suggestions for a query prefix **delivery** — Delivery schedule: upcoming delivery date, edit-lock window, and reschedule calendar - `shopper-pp-cli delivery list-calendar` — Get delivery reschedule calendar — allowed date range and disabled days - `shopper-pp-cli delivery list-summary` — Show scheduled delivery date, current delivery status, and store message **features** — Storefront configuration, feature toggles, and timer state - `shopper-pp-cli features create-select` — Select active store (sets session context; no-op for header-scoped reads) - `shopper-pp-cli features create-start` — Start a named feature timer - `shopper-pp-cli features create-view` — Mark a feature toggle as viewed - `shopper-pp-cli features list-stores` — List all available storefronts with store IDs, cluster IDs, payment parameters, and feature flags - `shopper-pp-cli features list-tick` — Get current timer state - `shopper-pp-cli features list-toggle` — Get active feature toggles for the current store **orders** — Purchase history and spend — reads from GET /orders/orders (web 'Histórico de compras') - `shopper-pp-cli orders` — List past orders for the active store (newest-first, paginated by size) **session** — Session and social-login validation - `shopper-pp-cli session` — Validate social-login session status ## Freshness Contract This printed CLI owns bounded freshness only for registered store-backed read command paths. In `--data-source auto` mode, those paths check `sync_state` and may run a bounded refresh before reading local data. `--data-source local` never refreshes. `--data-source live` reads the API and does not mutate the local store. Set `SHOPPER_NO_AUTO_REFRESH=1` to skip the freshness hook without changing source selection. Covered paths: - `shopper-pp-cli address` - `shopper-pp-cli address get` - `shopper-pp-cli address list` - `shopper-pp-cli address search` - `shopper-pp-cli cart` - `shopper-pp-cli cart get` - `shopper-pp-cli cart list` - `shopper-pp-cli cart search` - `shopper-pp-cli catalog` - `shopper-pp-cli catalog get` - `shopper-pp-cli catalog list` - `shopper-pp-cli catalog search` - `shopper-pp-cli catalog-departments` - `shopper-pp-cli catalog-departments get` - `shopper-pp-cli catalog-departments list` - `shopper-pp-cli catalog-departments search` - `shopper-pp-cli catalog-products-news` - `shopper-pp-cli catalog-products-news get` - `shopper-pp-cli catalog-products-news list` - `shopper-pp-cli catalog-products-news search` - `shopper-pp-cli catalog-search-suggest` - `shopper-pp-cli catalog-search-suggest get` - `shopper-pp-cli catalog-search-suggest list` - `shopper-pp-cli catalog-search-suggest search` - `shopper-pp-cli delivery` - `shopper-pp-cli delivery get` - `shopper-pp-cli delivery list` - `shopper-pp-cli delivery search` - `shopper-pp-cli delivery-v2-calendar` - `shopper-pp-cli delivery-v2-calendar get` - `shopper-pp-cli delivery-v2-calendar list` - `shopper-pp-cli delivery-v2-calendar search` - `shopper-pp-cli features` - `shopper-pp-cli features get` - `shopper-pp-cli features list` - `shopper-pp-cli features search` - `shopper-pp-cli features-timer-tick` - `shopper-pp-cli features-timer-tick get` - `shopper-pp-cli features-timer-tick list` - `shopper-pp-cli features-timer-tick search` - `shopper-pp-cli features-toggle` - `shopper-pp-cli features-toggle get` - `shopper-pp-cli features-toggle list` - `shopper-pp-cli features-toggle search` - `shopper-pp-cli orders` - `shopper-pp-cli orders get` - `shopper-pp-cli orders list` - `shopper-pp-cli orders search` - `shopper-pp-cli session` - `shopper-pp-cli session get` - `shopper-pp-cli session list` - `shopper-pp-cli session search` When JSON output uses the generated provenance envelope, freshness metadata appears at `meta.freshness`. Treat it as current-cache freshness for the covered command path, not a guarantee of complete historical backfill or API-specific enrichment. ### Finding the right command When you know what you want to do but not which command does it, ask the CLI directly: ```bash shopper-pp-cli which "<capability in your own words>" ``` `which` resolves a natural-language capability query to the best matching command from this CLI's curated feature index. Exit code `0` means at least one match; exit code `2` means no confident match — fall back to `--help` or use a narrower query. ## Hand-written Extensions These commands are declared by the spec author and require separate hand-written wiring; the generator does not emit Cobra registration for them. They are listed here for discoverability and are intentionally outside `## Command Reference` so the verify-skill unknown-command check does not treat them as generator-owned paths. - `shopper-pp-cli stores` — List all available Shopper storefronts with IDs, cluster IDs, payment parameters, and capability flags - `shopper-pp-cli checkout preview` — Pre-checkout summary: basket totals, delivery date, charge date, min-order status, and accepted payment types (read-only - `shopper-pp-cli checkout open` — Open the Shopper checkout page in the system browser (subscription-based payment via session login) - `shopper-pp-cli delivery reschedule [--store <store>]` — Open the delivery reschedule calendar in the browser (POST /shop/minha-conta/alterar-data requires session cookie) - `shopper-pp-cli delivery skip` — Open the skip-delivery page in the browser — subscription stores only (POST /shop/minha-conta/pular-entrega/ requires - `shopper-pp-cli delivery suspend` — Open the suspend-subscription page in the browser (POST /shop/minha-conta/suspender-entrega requires session cookie) - `shopper-pp-cli delivery boleto` — Open the boleto-retrieval page in the browser to get the bank slip for the current order - `shopper-pp-cli subscription pause` — Open the subscription-pause page in the browser (POST /shop/carrinho/pause/ requires session cookie) - `shopper-pp-cli subscription resume` — Open the subscription-resume page in the browser (POST /shop/carrinho/play/ requires session cookie) - `shopper-pp-cli payment cards` — Show saved payment card count and open card-management in the browser (card add/delete is browser-required ## Recipes ### Check if the edit window is still open ```bash shopper-pp-cli charge-calendar --store programada --agent --select next_delivery_date,edit_lock_date,charge_date ``` Returns the key dates for the next cycle; compare edit_lock_date to today to know if the basket can still be changed. ### Find items to add for next cashback tier ```bash shopper-pp-cli cashback optimize --store programada --agent ``` Computes the cheapest catalog additions to cross the next cashback threshold using your live cart and synced product data. ### Cross-store spend rollup for last 12 months ```bash shopper-pp-cli orders spend --agent --select store,month,total ``` Queries all 6 storefronts and returns a month-by-store spend matrix for budgeting analysis. ### Detect if a subscribed product changed price ```bash shopper-pp-cli price-watch --store programada --agent --select product_id,name,price_now,price_baseline,change_pct ``` Scans synced price history for products in your basket and flags meaningful price movements. ### Pre-checkout summary with charge date ```bash shopper-pp-cli checkout preview --store programada --agent --select total_amount,delivery_date,charge_date,min_order_met,payment_methods ``` Aggregates cart/delivery/payment data so an agent can confirm basket readiness before directing the user to open the checkout browser. ## Auth Setup Set SHOPPER_TOKEN to your Shopper JWT (from the siteapi Authorization header in browser DevTools). Run 'shopper-pp-cli doctor' to verify. The token is long-lived for the subscription cycle. Never store raw card numbers or CPF in config; card management always opens the browser. Run `shopper-pp-cli doctor` to verify setup. ## Agent Mode Add `--agent` to any command. Expands to: `--json --compact --no-input --no-color --yes`. - **Pipeable** — JSON on stdout, errors on stderr - **Filterable** — `--select` keeps a subset of fields. Dotted paths descend into nested structures; arrays traverse element-wise. Critical for keeping context small on verbose APIs: ```bash shopper-pp-cli address --agent --select id,name,status ``` - **Previewable** — `--dry-run` shows the request without sending - **Offline-friendly** — sync/search commands can use the local SQLite store when available - **Non-interactive** — never prompts, every input is a flag - **Explicit retries** — use `--idempotent` only when an already-existing create should count as success ### Response envelope Commands that read from the local store or the API wrap output in a provenance envelope: ```json { "meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."}, "results": <data> } ``` Parse `.results` for data and `.meta.source` to know whether it's live or local. A human-readable `N results (live)` summary is printed to stderr only when stdout is a terminal AND no machine-format flag (`--json`, `--csv`, `--compact`, `--quiet`, `--plain`, `--select`) is set — piped/agent consumers and explicit-format runs get pure JSON on stdout. ## Paths and state Agents should treat the CLI's path resolver as part of the runtime contract: - Use `--home <dir>` for one invocation, or set `SHOPPER_HOME=<dir>` to relocate all four path kinds under one root. - Use per-kind env vars only when a specific kind must diverge: `SHOPPER_CONFIG_DIR`, `SHOPPER_DATA_DIR`, `SHOPPER_STATE_DIR`, `SHOPPER_CACHE_DIR`. - Resolution order is per-kind env var, `--home`, `SHOPPER_HOME`, XDG (`XDG_CONFIG_HOME`, `XDG_DATA_HOME`, `XDG_STATE_HOME`, `XDG_CACHE_HOME`), then platform defaults. - `config` contains settings like `config.toml` and profiles. `data` contains `credentials.toml`, `data.db`, cookies, and auth sidecars. `state` contains persisted queries, jobs, and `teach.log`. `cache` contains regenerable HTTP/cache files. - Stored secrets live in `credentials.toml` under the data dir. Existing legacy `config.toml` secrets are read for compatibility and leave `config.toml` on the first auth write. - Run `shopper-pp-cli doctor --fail-on warn` to surface path and credential-location warnings. `agent-context` exposes a schema v4 `paths` block for agents that need the resolved dirs. - For MCP, pass relocation through the MCP host config. The MCP binary does not inherit CLI flags: ```json { "mcpServers": { "shopper": { "command": "shopper-pp-mcp", "env": { "SHOPPER_HOME": "/srv/shopper" } } } } ``` Fleet precedence: an inherited per-kind env var overrides an explicit `--home` for that kind. Use `SHOPPER_HOME` or per-kind vars as durable fleet levers, and use `--home` only for a single invocation. Relocation is not reversible by unsetting env vars; move files manually before clearing `SHOPPER_HOME`, or `doctor` will not find credentials left under the former root. ## Automatic learning
GitHub에서 보기
이 SKILL.md는 매우 커서 SkillsMP가 여기에는 첫 섹션만 미리 보여줍니다. GitHub에서 보기