Shopping Skill
Use this skill for deterministic shopping runs, conservative deal comparison, and decision-ready review of generated shopping artifacts.
Reliable defaults:
- before daemon-backed
shopping run workflows, run opendevbrowser status --daemon --output-format json and continue only when data.fingerprintCurrent === true
- start with explicit providers for reproducible reruns
- prefer
--browser-mode managed unless relay-backed session state is required
- treat
--region as advisory unless workflow output reports meta.selection.region_authoritative=true
Pack Contents
artifacts/deal-hunting-workflows.md
assets/templates/deals-context.json
assets/templates/deals-table.md
assets/templates/market-analysis.json
assets/templates/deal-thresholds.json
scripts/run-shopping.sh
scripts/normalize-offers.sh
scripts/render-deals.sh
scripts/analyze-market.sh
scripts/run-deal-hunt.sh
scripts/validate-skill-assets.sh
- Shared robustness matrix:
../opendevbrowser-best-practices/artifacts/browser-agent-known-issues-matrix.md
Fast Start
./skills/opendevbrowser-shopping/scripts/validate-skill-assets.sh
./skills/opendevbrowser-shopping/scripts/run-shopping.sh "wireless earbuds" context best_deal
./skills/opendevbrowser-shopping/scripts/run-deal-hunt.sh "wireless earbuds" "shopping/amazon,shopping/walmart"
Supporting Surfaces
- Use browser replay (
screencast-start / screencast-stop) when offer churn, price changes, or challenge timing needs temporal evidence.
- Use desktop observation only for read-only evidence around sibling desktop surfaces; provider collection stays browser-first.
- Use
--challenge-automation-mode off|browser|browser_with_helper for bounded browser-scoped computer use on provider challenge branches; it is not desktop automation.
Runtime Artifact Contract
Successful shopping bundles preserve separate user and audit surfaces:
deals.md: primary deterministic buying brief with a Buying Readiness Gate, Recommendation, Best Candidate Offers, Market Baseline, Warnings and Constraints, Excluded or Constrained Offers, and Evidence Appendix.
buyingReadiness in JSON output: first-class buying authority gate with status values pass, partial, or fail.
offers.json: raw structured offer evidence.
comparison.csv: tabular provider, title, price, shipping, deal score, availability, and URL comparison, with appended currency and total-status audit fields.
meta.json: workflow diagnostics, selected providers, alerts, failures, and filter diagnostics.
deals-context.json: agent handoff context with query, report-derived highlights, raw offers, and meta.
compact and context modes summarize the report guidance. json mode returns raw offers, buyingReadiness, and meta.
Decision Model
Use the runtime buying brief as the source of truth for purchase guidance:
- Read the Buying Readiness Gate in
deals.md or buyingReadiness.status in JSON output. Transport success and emitted offers are not enough for purchase guidance.
pass: evidence supports bounded buying guidance for the current shortlist.
partial: offers are usable as a constrained shortlist, but evidence gaps limit confidence.
fail: no confident purchase recommendation is allowed.
- Review warnings before naming a candidate.
- Freshness warnings include stale, inferred, or missing price timestamps.
- Availability warnings include unknown or out-of-stock offers.
- Relevance warnings include weak query fit or suspicious titles.
- Duplicate warnings mean same-title or same-product offers appear across multiple URLs.
- Advisory region warnings mean requested regional comparison is not authoritative.
- Check raw artifacts when decisions matter.
- Audit prices and URLs in
offers.json and comparison.csv.
- Audit workflow failures, alerts, and filter constraints in
meta.json.
- Do not claim seller trust, return policy, warranty, condition, shipping certainty, or price history unless the raw offer attributes and report text explicitly include them.
Market Baseline And Savings
The runtime Market Baseline section is conservative:
- It computes average, median, and lowest total only from a deterministic same-currency sample.
- It reports
market baseline unavailable when sample size or currency coverage is insufficient.
- It reports anchor/list discount only when explicit anchor, list, original, or MSRP evidence is present.
- It does not invent savings from a sale label, hidden list price, unrelated currency, or missing price-history source.
The helper script scripts/analyze-market.sh can be used for offline analysis of exported offers, but it is not automatically invoked by opendevbrowser shopping run. Treat script output as supplemental unless it is copied into the final evidence review with its inputs.
Parallel Multitab Alignment
- Apply shared concurrency policy from
../opendevbrowser-best-practices/SKILL.md ("Parallel Operations").
- Validate shopping workflow browser-mode sweeps with
auto, extension, and managed when browser-backed provider paths are exercised.
- For lower-level attach parity, separately validate direct connect or CDP attach sessions where shopping uses browser action tools.
- Keep one session per worker for parallel offer collection and avoid session-level target contention.
- For browser-backed release proof and mode sweeps, follow the canonical direct-run evidence policy in
../opendevbrowser-best-practices/SKILL.md.
Robustness Coverage (Known-Issue Matrix)
Matrix source: ../opendevbrowser-best-practices/artifacts/browser-agent-known-issues-matrix.md
ISSUE-06: rate-limit/backoff handling while collecting offers
ISSUE-09: dedupe and pagination drift controls in offer collection
ISSUE-10: currency normalization and same-currency grouping
ISSUE-11: weak or missing anchor price detection
ISSUE-12: stale price and unsupported claim controls
Canonical Workflow
- Run shopping search across selected providers.
- Open
deals.md first and classify readiness as pass, partial, or fail.
- Inspect warnings for freshness, availability, relevance, duplicate pressure, market baseline, workflow alerts, and advisory region limits.
- Audit raw evidence in
offers.json, comparison.csv, and meta.json before giving buying advice.
- Use helper scripts only as optional offline analysis over exported raw artifacts.
opendevbrowser shopping run --query "<query>" --providers shopping/amazon,shopping/walmart --mode json --output-format json
opendevbrowser shopping run --query "wireless ergonomic mouse" --providers shopping/bestbuy,shopping/ebay --budget 150 --browser-mode managed --mode json --output-format json
opendevbrowser shopping run --query "27 inch 4k monitor" --providers shopping/bestbuy,shopping/ebay --budget 350 --sort lowest_price --browser-mode managed --mode json --output-format json
Diagnostics rules:
- inspect
meta.primaryConstraintSummary before classifying a zero-offer run as a provider failure
- inspect
meta.offerFilterDiagnostics to see whether zero price, budget, or region-currency filters removed candidate offers
- if
meta.alerts includes reasonCode=region_unenforced, do not present the output as a trustworthy regional comparison
Candidate Decision Rules
Use confident wording only when the report gate allows it:
- Do not override a
fail gate with a buying recommendation.
- Treat
partial as a constrained shortlist, not a final answer.
- Treat out-of-stock, weak-relevance, suspicious-title, stale-freshness, duplicate-pressure, and advisory-region warnings as constraints.
- Prefer candidates with observed fresh price evidence, usable title, strong query fit, available stock, and an available same-currency market baseline.
- State when market baseline, anchor/list discount, seller trust, returns, warranty, condition, or price history are unavailable.
References
1---2name: opendevbrowser-shopping3description: Deterministic multi-provider shopping and deal-comparison workflow.4---56# Shopping Skill78Use this skill for deterministic shopping runs, conservative deal comparison, and decision-ready review of generated shopping artifacts.910Reliable defaults:11- before daemon-backed `shopping run` workflows, run `opendevbrowser status --daemon --output-format json` and continue only when `data.fingerprintCurrent === true`12- start with explicit providers for reproducible reruns13- prefer `--browser-mode managed` unless relay-backed session state is required14- treat `--region` as advisory unless workflow output reports `meta.selection.region_authoritative=true`1516## Pack Contents1718- `artifacts/deal-hunting-workflows.md`19- `assets/templates/deals-context.json`20- `assets/templates/deals-table.md`21- `assets/templates/market-analysis.json`22- `assets/templates/deal-thresholds.json`23- `scripts/run-shopping.sh`24- `scripts/normalize-offers.sh`25- `scripts/render-deals.sh`26- `scripts/analyze-market.sh`27- `scripts/run-deal-hunt.sh`28- `scripts/validate-skill-assets.sh`29- Shared robustness matrix: `../opendevbrowser-best-practices/artifacts/browser-agent-known-issues-matrix.md`3031## Fast Start3233```bash34./skills/opendevbrowser-shopping/scripts/validate-skill-assets.sh35./skills/opendevbrowser-shopping/scripts/run-shopping.sh "wireless earbuds" context best_deal36./skills/opendevbrowser-shopping/scripts/run-deal-hunt.sh "wireless earbuds" "shopping/amazon,shopping/walmart"37```3839## Supporting Surfaces4041- Use browser replay (`screencast-start` / `screencast-stop`) when offer churn, price changes, or challenge timing needs temporal evidence.42- Use desktop observation only for read-only evidence around sibling desktop surfaces; provider collection stays browser-first.43- Use `--challenge-automation-mode off|browser|browser_with_helper` for bounded browser-scoped computer use on provider challenge branches; it is not desktop automation.4445## Runtime Artifact Contract4647Successful shopping bundles preserve separate user and audit surfaces:4849- `deals.md`: primary deterministic buying brief with a Buying Readiness Gate, Recommendation, Best Candidate Offers, Market Baseline, Warnings and Constraints, Excluded or Constrained Offers, and Evidence Appendix.50- `buyingReadiness` in JSON output: first-class buying authority gate with `status` values `pass`, `partial`, or `fail`.51- `offers.json`: raw structured offer evidence.52- `comparison.csv`: tabular provider, title, price, shipping, deal score, availability, and URL comparison, with appended currency and total-status audit fields.53- `meta.json`: workflow diagnostics, selected providers, alerts, failures, and filter diagnostics.54- `deals-context.json`: agent handoff context with `query`, report-derived `highlights`, raw `offers`, and `meta`.5556`compact` and `context` modes summarize the report guidance. `json` mode returns raw offers, `buyingReadiness`, and meta.5758## Decision Model5960Use the runtime buying brief as the source of truth for purchase guidance:61621. Read the Buying Readiness Gate in `deals.md` or `buyingReadiness.status` in JSON output. Transport success and emitted offers are not enough for purchase guidance.63- `pass`: evidence supports bounded buying guidance for the current shortlist.64- `partial`: offers are usable as a constrained shortlist, but evidence gaps limit confidence.65- `fail`: no confident purchase recommendation is allowed.66672. Review warnings before naming a candidate.68- Freshness warnings include stale, inferred, or missing price timestamps.69- Availability warnings include unknown or out-of-stock offers.70- Relevance warnings include weak query fit or suspicious titles.71- Duplicate warnings mean same-title or same-product offers appear across multiple URLs.72- Advisory region warnings mean requested regional comparison is not authoritative.73743. Check raw artifacts when decisions matter.75- Audit prices and URLs in `offers.json` and `comparison.csv`.76- Audit workflow failures, alerts, and filter constraints in `meta.json`.77- Do not claim seller trust, return policy, warranty, condition, shipping certainty, or price history unless the raw offer attributes and report text explicitly include them.7879## Market Baseline And Savings8081The runtime Market Baseline section is conservative:8283- It computes average, median, and lowest total only from a deterministic same-currency sample.84- It reports `market baseline unavailable` when sample size or currency coverage is insufficient.85- It reports anchor/list discount only when explicit anchor, list, original, or MSRP evidence is present.86- It does not invent savings from a sale label, hidden list price, unrelated currency, or missing price-history source.8788The helper script `scripts/analyze-market.sh` can be used for offline analysis of exported offers, but it is not automatically invoked by `opendevbrowser shopping run`. Treat script output as supplemental unless it is copied into the final evidence review with its inputs.8990## Parallel Multitab Alignment9192- Apply shared concurrency policy from `../opendevbrowser-best-practices/SKILL.md` ("Parallel Operations").93- Validate shopping workflow browser-mode sweeps with `auto`, `extension`, and `managed` when browser-backed provider paths are exercised.94- For lower-level attach parity, separately validate direct connect or CDP attach sessions where shopping uses browser action tools.95- Keep one session per worker for parallel offer collection and avoid session-level target contention.96- For browser-backed release proof and mode sweeps, follow the canonical direct-run evidence policy in `../opendevbrowser-best-practices/SKILL.md`.9798## Robustness Coverage (Known-Issue Matrix)99100Matrix source: `../opendevbrowser-best-practices/artifacts/browser-agent-known-issues-matrix.md`101102- `ISSUE-06`: rate-limit/backoff handling while collecting offers103- `ISSUE-09`: dedupe and pagination drift controls in offer collection104- `ISSUE-10`: currency normalization and same-currency grouping105- `ISSUE-11`: weak or missing anchor price detection106- `ISSUE-12`: stale price and unsupported claim controls107108## Canonical Workflow1091101. Run shopping search across selected providers.1112. Open `deals.md` first and classify readiness as `pass`, `partial`, or `fail`.1123. Inspect warnings for freshness, availability, relevance, duplicate pressure, market baseline, workflow alerts, and advisory region limits.1134. Audit raw evidence in `offers.json`, `comparison.csv`, and `meta.json` before giving buying advice.1145. Use helper scripts only as optional offline analysis over exported raw artifacts.115116```bash117opendevbrowser shopping run --query "<query>" --providers shopping/amazon,shopping/walmart --mode json --output-format json118opendevbrowser shopping run --query "wireless ergonomic mouse" --providers shopping/bestbuy,shopping/ebay --budget 150 --browser-mode managed --mode json --output-format json119opendevbrowser shopping run --query "27 inch 4k monitor" --providers shopping/bestbuy,shopping/ebay --budget 350 --sort lowest_price --browser-mode managed --mode json --output-format json120```121122Diagnostics rules:123- inspect `meta.primaryConstraintSummary` before classifying a zero-offer run as a provider failure124- inspect `meta.offerFilterDiagnostics` to see whether zero price, budget, or region-currency filters removed candidate offers125- if `meta.alerts` includes `reasonCode=region_unenforced`, do not present the output as a trustworthy regional comparison126127## Candidate Decision Rules128129Use confident wording only when the report gate allows it:130131- Do not override a `fail` gate with a buying recommendation.132- Treat `partial` as a constrained shortlist, not a final answer.133- Treat out-of-stock, weak-relevance, suspicious-title, stale-freshness, duplicate-pressure, and advisory-region warnings as constraints.134- Prefer candidates with observed fresh price evidence, usable title, strong query fit, available stock, and an available same-currency market baseline.135- State when market baseline, anchor/list discount, seller trust, returns, warranty, condition, or price history are unavailable.136137## References138139- FTC Guides Against Deceptive Pricing (16 CFR 233): https://www.ecfr.gov/current/title-16/chapter-I/subchapter-B/part-233140- NIST SP 1181 (unit pricing and value comparison): https://www.nist.gov/publications/unit-pricing-guide141- Schema.org Offer (price metadata): https://schema.org/Offer