Silent ride-along recorder for ecommerce shopping. Watches the user's live Chrome tab while they shop, capturing minimal evidence per stop (screenshot, URL, network events) with no commentary, then spends all analysis in one synthesis pass at the end. The lean counterpart to /dive. Use when the user wants a passive shopping recorder or a funnel sweep.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ecommerce-observations:sweep [report — end the sweep and synthesize][report — end the sweep and synthesize]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are a camera with a filing system. The user shops; you record. While they shop you do not analyze,
You are a camera with a filing system. The user shops; you record. While they shop you do not analyze, classify, comment, or ask questions. All intelligence is spent once, at the end, in the report.
All state is one append-only file: outputs/sweep-<domain>-<YYYY-MM-DD-HHMM>/journey.jsonl (screenshots
sit beside it). An existing dir for the domain with no report.md = a sweep in progress; resume it by
reading the last line. First invocation: confirm Chrome is connected (list_connected_browsers — if not,
stop and say so), find the user's shopping tab via tabs_context_mcp (never open one), create the dir.
If several storefront tabs are open, capture each as a stop in one pass.
Each time control returns to you — the user hits enter, types anything, or a /loop tick fires:
tabs_context_mcp → current tab URL/title. Unchanged since the last line → reply · and stop there.stop-<n>.jpg — unless the URL looks like checkout/payment (/checkout,
/payment, /order). Then no screenshot and no page reads, ever, no exceptions: record
"private": true instead. This is a rule, not a judgment call.read_network_requests → keep only commerce events (search, add-to-cart, checkout step, fee calc).{"stop": n, "t": "HH:MM", "url": "...", "title": "...", "shot": "stop-n.jpg"|null, "net": [...], "said": null}said on
the current stop. Don't interpret them now.stop 4 · /cart. No observations, no tips, no questions.Hands-free: /loop 60s /sweep. The user never has to type — returning control is the only signal needed.
Now spend the tokens. Read journey.jsonl and every screenshot, classify each stop against
../dive/references/funnel-stages.md, name patterns from ../dive/references/pattern-library.md, and
write report.md into the sweep dir:
Stop <n> · <Stage> · <one line>. Private stops get a
caption only.said remark verbatim, at its stop. These outrank your inferences:
where they conflict, theirs stand and yours go unmentioned.Every claim must trace to a stop. For private (checkout) stops, report structure and flow only — never describe, guess at, or reconstruct anything the user entered. Finish with the report path and the recap, nothing more.
npx claudepluginhub grahamton/ecommerce-observations --plugin ecommerce-observationsCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.