Skip to content

Add top-brand-position-tracker skill#7

Open
norightsforlis wants to merge 2 commits into
joomcode:mainfrom
norightsforlis:add-top-brand-position-tracker
Open

Add top-brand-position-tracker skill#7
norightsforlis wants to merge 2 commits into
joomcode:mainfrom
norightsforlis:add-top-brand-position-tracker

Conversation

@norightsforlis

Copy link
Copy Markdown
Contributor

Summary

Adds the top-brand-position-tracker skill: Ranks the brands in a category by estimated weekly sales and tracks how each brand's position changes week over week.

Lives in skills/top-brand-position-tracker/SKILL.md and is registered in the README skills table. Public behavior and user-visible workflow only — no internal service names, schema, or implementation details.

Public-Safety Checklist

  • No credentials, tokens, keys, or secrets.
  • No internal filesystem paths.
  • No private Slack, Jira, Notion, admin, or service URLs.
  • No private service names or implementation details.
  • No customer data or private product data.
  • Skill directory name matches SKILL.md frontmatter name.

🤖 Generated with Claude Code

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

Copy link
Copy Markdown
Collaborator

KISS review: this should be fixed before merge.

The skill’s core promise is week-over-week tracking, but it says each run reads a “previous run’s recorded brand table” and that the current table becomes the next baseline without defining any durable place to save/read that baseline. In a fresh conversation the agent cannot know the previous table, so it will either treat every run as first run or risk inventing movement.

Please either remove the tracking claims and ship a point-in-time brand ranking, or add a concrete supported persistence mechanism. While there, please also collapse the conflicting first-run table instructions: one section says include Movimento, while another says omit Variação.

@profunctor

Copy link
Copy Markdown
Collaborator

Review — top-brand-position-tracker

Summary: Ranks brands within one Mercado Livre (Brasil) category by estimated weekly sales/revenue (aggregated across each brand's active listings), then on later runs tracks week-over-week rank movement (rose/fell/new/unchanged/left). Read-only, pt-BR default, markdown table + optional cards/bar chart.

Findings:

  • minor — Two divergent table specs for the same deliverable. "Output" defines an 8-column table (Posição, Movimento, Marca, GMV est. (semana), Vendas est. (semana), Anúncios, Avaliações, Preço médio); "Visualization > Ranked table" gives a different 6-column layout (Pos. | Marca | GMV (semana) | Vendas (semana) | Listings | Variação) with different names and an English "Listings" header in an otherwise pt-BR table. Reconcile to one canonical table.
  • minor — First-run contradiction: Output lists Movimento as a permanent column ("all unchanged/new on the first run"), while Visualization says "First run: omit the Variação column entirely." Combined with the above, first-run behavior is ambiguous.
  • minor — Brand-name matching is fragile. The whole skill hinges on a usable per-listing brand field and on brand strings matching across runs (the WoW match is "by name"). ML brand strings are noisy (casing, "Outro", variants), which can fragment a brand into several rows or break run-to-run matching. Add a note to normalize/canonicalize brand names before grouping/matching.
  • nit — README row says "by estimated weekly sales" but the skill ranks primarily by revenue (GMV). Align wording.

No correctness blockers, hardcoded values, or leaked internals; read-only with the estimate disclaimer; directory name == name; triggers are well-differentiated. The one thing to fix before merge is reconciling the two table specs.

…cal table, brand normalization

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