[2nd · after #41] Fix top-sellers-in-category: rank against real sales, and stop reading buy-box position as idle stock - #35
Open
fiharet34 wants to merge 4 commits into
Conversation
…g buy-box position as idle stock Checks each estimate against the seller's real completed sales before placing a row: shops with no real trading history move out of the ranking into a labelled group, while a real business whose estimate runs high stays in with a caveat. Groups shops sharing a name stem and says whether that changes the leader, without asserting common ownership. Reframes the registered-versus-with-sales comparison as sellers only. On a catalog product only the buy-box holder shows sales, so the product gap measures buy-box position rather than idle inventory - and since the panel now renders every run, an unlabelled version of that chart would mislead every time. Also: medal as a column so the saved baseline can reproduce its own panel, the growth column named for the metric it carries, full money precision in a ranking, a missing-value rule, a width fallback that drops columns rather than the table, retry after a pause, and an empty result separated from an outage.
fiharet34
pushed a commit
to fiharet34/joompulse-skills
that referenced
this pull request
Sep 10, 2026
Takes joomcode#35 whole for this skill — it is more thorough than the store-wide fix made here today. It finds five store-wide fields where that found two, adding monthly growth, international shipping and the listing-type counts, and it explains why the listing-type counts do not add up to the category product count. Two things from this branch are re-applied on top, both because a live run showed the difference: The store-wide columns say so in the header. joomcode#35 states the scope in prose ("say which figures are category-scoped and which are store-wide"), and that is the form that did not hold: a leaderboard still put a monthly category figure beside a yearly store-wide one with nothing marking them apart, and a reader would conclude the category had collapsed. The header label survived where the prose did not, so both are kept and all six store-wide columns now carry it. The download offer stays conditional. joomcode#35 predates that fix and promises a `.csv` / `.xlsx` in six places; no host is guaranteed to write files, and this portal cannot, so it would promise a download that never arrives and the trackers depend on that file being the baseline.
pulse://overview rule 10 restricts the beginner-products/{id} template to
listing ids and skips seller grain. This skill asks for the Vendedor name to
link to "the seller's JoomPulse page". In a live run every one of those links
was built from a shopId and 404ed — nine dead URLs in a single answer.
Two places were promising it:
- the presentation rule in the body, which now states the name is plain text
and why;
- the frontmatter description, which advertised "...listing-type counts, with
a JoomPulse link each". That one matters more than it looks: descriptions
are injected into the system prompt for skill selection, so the promise
shipped even in conversations where this skill never loaded.
Nothing else changes — no column, threshold or ranking rule is touched.
fiharet34
pushed a commit
to fiharet34/joompulse-skills
that referenced
this pull request
Sep 14, 2026
- top-sellers-in-category: every seller ranked is a row of one markdown table -- never a numbered list, never leaders-in-table with the rest in prose, because the user saves this table and pastes it back next period. The Vendedor name is plain text: sellers have no JoomPulse dashboard page, so a URL built from a shopId 404s. Also restores PR joomcode#37's language wording, which the local merge of joomcode#35 resolved away. - seller-overview-tracker: the monthly sales trend is the change in JoomPulse's estimated sales, not real Mercado Livre data, so it carries the estimate caveat and never appears among the real figures. No seller link, for the same reason as above. - top-brand-position-tracker: a category has no JoomPulse page either, so the table carries no category link. Not pushed, and no PR for the table-shape rule: joomcode#35 rewrites the same region of that file, so a PR now would mean resolving the same conflict twice.
"Never abandon the table for a seller-by-seller list" left room for the shapes a live pass actually produced: the leaders in the table with the rest in prose, and a trailing "and below them, X, Y, Z" sentence. Both look like a leaderboard and neither can be compared row against row next period, which is the whole reason the seller keeps it. Names those shapes and ends with the check to apply before answering. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Both branches rewrote the same two passages. Resolved by keeping this branch's fuller field list and its added guidance, and taking joomcode#41's correction throughout: sellers have no JoomPulse page, so the Vendedor name is plain text and the description no longer promises a link per seller. Merging it here rather than leaving the clash for whoever lands these second. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
fiharet34
marked this pull request as ready for review
September 14, 2026 12:58
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Five defects in
top-sellers-in-category, each reproduced against production data before the file was touched and re-verified afterwards.1. The panel charts a misreading. The "registered versus with sales" comparison reads mostly as buy-box position, not dead stock: on a catalog product only the buy-box holder shows sales. A live run reported "dois terços do estoque está parado" — two thirds of that gap is attribution. Since #33 made the panel mandatory this renders every run, not occasionally.
2. Nothing checked the estimate against real sales.
RAIZENTECHranked 5th on an estimate implying ~72,000 sales a year against 352 actually completed;LINDOPETSranked 36th on a single listing with zero sales. Excluding them surfaced four real businesses they had been displacing.3. Shops sharing a brand were never grouped, which changes who leads.
4. The Vendedor name linked to a JoomPulse page that does not exist — the dashboard link template is for listing ids, so a URL built from a shopId 404s. (Carries #41; see below.)
5. Ranked sellers could leave the table for a numbered list or prose, which defeats the point: the seller saves this table and pastes it back next period to compare row against row.
Merge order
This branch contains #41, merged in to resolve a clash on the same two passages. Merge #41 first — then this diff shrinks to its own work. If this one lands first, use a merge commit rather than squash, or #41 will conflict despite its content already being present.
🤖 Generated with Claude Code