Skip to content

Make the focused skills marketplace-aware: add Shopee Brasil - #31

Merged
profunctor merged 1 commit into
joomcode:mainfrom
norightsforlis:feat/shopee-marketplace-aware
Aug 19, 2026
Merged

Make the focused skills marketplace-aware: add Shopee Brasil#31
profunctor merged 1 commit into
joomcode:mainfrom
norightsforlis:feat/shopee-marketplace-aware

Conversation

@norightsforlis

Copy link
Copy Markdown
Contributor

Why

JoomPulse now serves Shopee Brasil alongside Mercado Livre (Brasil), and seller-copilot was already taught both (#28). The focused skills were not: every one of them scoped itself to Mercado Livre, so a Shopee question either went unanswered or came back with the other marketplace's numbers — a wrong answer that looks right.

Each of the 17 focused skills was analysed individually against the live Shopee data before anything was written, and the disposition below follows what the data actually supports.

What changed

13 skills now cover both marketplaces. Each decides the marketplace first — from what the seller says, from a link, or from the identifier shape (MLB… vs a bare 10–11 digit number) — and never guesses or defaults. Each gained the same two blocks, inserted byte-identically so the behaviour cannot drift: a marketplace-decision step, and a statement of how Shopee data differs.

The Shopee output contract differs where the data does:

Mercado Livre Shopee
weekly sales windows 30-day windows (relabelled — a 30-day figure must never sit under a weekly heading)
seller medals (platina/ouro/prata) Official store / Preferred (Indicado) / Common — three tiers, no ladder
free shipping, Mercado Envios Full, listing tier no equivalent →
JoomPulse dashboard link Shopee item link
catalogue and buy-box no such mechanic
seasonality, 12-month trend history starts May 2026 → stated as unavailable, not drawn empty

4 stay Mercado Livre only, because the Shopee data does not exist. They now say so and offer the nearest real alternative instead of answering wrongly:

  • top-keywords-in-my-category — Shopee has no search-demand data at all;
  • my-product-vs-catalog — Shopee has no catalogue and no buy-box;
  • top-brand-position-tracker — Shopee brand coverage is incomplete by construction, so a ranking would imply a completeness the data cannot support;
  • top-sellers-in-category — no per-seller revenue within a Shopee category yet (left unchanged in this PR; the gap is documented below).

Two traps found against live data

Both were caught while verifying, and both are now encoded in the skills:

  1. An unreviewed Shopee item reports a rating of zero, not a blank. In a probe of the "worst rated, still selling" items, 4 of the top 5 had rating 0 with 0 reviews (2 000 / 890 / 820 / 610 units sold). Without a guard the skill would brand them as high-demand, terrible-quality products. The low-rating search now requires at least one review before the rating threshold applies.
  2. Shopee price and review history are step functions — a value is recorded only when it changes. So "a week ago" carries the last record forward, and an absent record means nothing changed (delta 0), not "data unavailable". This replaces the Mercado Livre rule of giving up after a two-week lookback.

Also confirmed and encoded: Shopee sold counters are rounded into buckets (the top items all report exactly 10 000), so ranking on small gaps is meaningless.

top-sellers-in-category — why it is untouched

Shopee has no per-seller revenue within a category, and the shop profile carries no monthly rollups, so the skill's ranking axis does not exist there. Seven of its twelve columns would be empty: Receita média (mês), Vendas méd. (mês), Vendas 365d, Cancel rate, Sales trend, Classic, Premium. Adding Shopee would mean rebuilding the ranking from per-item figures summed client-side — a separate change, deliberately not bundled here.

Also in this PR

  • seller-copilot/references/which-marketplace.md claimed every focused skill was Mercado Livre only. That is no longer true, so it now points at the skills that cover both and names the four that do not.
  • README: a short note on marketplace coverage above the skills table.

Verification

  • Every description is ≤1024 characters with no angle brackets — the two gates that have broken uploads before (Fix: shorten 7 SKILL.md descriptions to the 1024-char limit #24, Fix: remove XML-like placeholders from new-growing description #25). The check caught two over-limit descriptions during the work; both fixed.
  • No internal cube, field or tool names anywhere in skills/ — the public-safety rule from CONTRIBUTING.
  • Both shared blocks verified byte-identical across all 13 skills.
  • All 18 skill .zips build with <name>/SKILL.md at the root.
  • Live Shopee runs confirm the new recipes return real data; a Mercado Livre run confirms the existing path is unchanged (seasonality, platinum counts and the 12-month trend still resolve).
  • All 13 ## Visualization sections retained — cards and charts adapted per marketplace, none dropped.

🤖 Generated with Claude Code

JoomPulse now serves Shopee Brasil alongside Mercado Livre (Brasil). Until now
every focused skill scoped itself to Mercado Livre, so a Shopee question either
went unanswered or came back with the wrong marketplace's numbers.

Thirteen skills now decide the marketplace first and then read that marketplace's
own data. Each gained the same two blocks — a marketplace-decision step and a
statement of how Shopee data differs — plus a Shopee output contract: 30-day
sales windows instead of weekly, shop tiers (Official store / Preferred
(Indicado) / Common) instead of medals, Shopee item links, and an em dash where
Shopee has no equivalent (free shipping, fulfilment programme, listing tier).

Four stay Mercado Livre only because the Shopee data does not exist, and now say
so and offer the nearest alternative instead of answering wrongly:
top-keywords-in-my-category (no search-demand data), my-product-vs-catalog (no
catalogue or buy-box), top-brand-position-tracker (brand coverage too incomplete
to rank) and top-sellers-in-category (no per-seller revenue within a category).

Two traps found while verifying against live Shopee data and encoded in the
skills: an unreviewed item reports a rating of zero rather than a blank, so the
low-rating search now requires at least one review; and price and review history
are recorded only when a value changes, so "a week ago" carries the last record
forward and an absent record means no change, not missing data.

Also updates the seller-copilot marketplace reference, which claimed every
focused skill was Mercado Livre only, and the README skills section.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@profunctor
profunctor merged commit bc31963 into joomcode:main Aug 19, 2026
1 check failed
profunctor pushed a commit that referenced this pull request Aug 20, 2026
The public-safety grep bans "token" because it normally means a credential.
The Shopee title-search guidance added in #31 used it in the linguistic sense
("search short tokens"), which tripped the check on nine lines across two
skills and left main red.

Reworded to "terms", which reads better for search guidance anyway. No
behaviour change.

Co-authored-by: Elizaveta Orekhova <elorekhova@elorekhova-osx.freets>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
profunctor pushed a commit that referenced this pull request Aug 20, 2026
…al (#33)

* Fix the public-safety check: avoid the word "token"

The public-safety grep bans "token" because it normally means a credential.
The Shopee title-search guidance added in #31 used it in the linguistic sense
("search short tokens"), which tripped the check on nine lines across two
skills and left main red.

Reworded to "terms", which reads better for search guidance anyway. No
behaviour change.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* Render the cards and charts inline instead of treating them as optional

Every skill that specifies visuals guarded them behind "when the client can
render inline visuals" and named no mechanism. Nothing in the Claude app
matches that phrase, so the skill silently took the markdown fallback and the
seller never saw a card or a chart — the visuals were effectively dead in the
surface most people use.

The thirteen skills that specify visuals now render them every time the data
supports them, as a self-contained panel: an artifact where the client renders
artifacts, an inline widget where it renders widgets. Cards first, then charts,
then the written read. The data table and the estimate disclaimer still live in
the response text, never inside the panel.

The panel is not optional and must not be described instead of drawn. Skipping
one chart whose own threshold is not met never means skipping the panel, and
where no visual surface exists at all the markdown-plus-text-cards fallback
still applies.

No card or chart was added, renamed or removed: every existing spec, data
threshold, palette rule and per-marketplace window label is untouched, and so
is every other section of every file. The five skills that never specified
visuals — single-product analysis, buy-box comparison, product change monitor,
same-product finder and the copilot — are deliberately left alone.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Elizaveta Orekhova <elorekhova@elorekhova-osx.freets>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants