Skip to content

Render the cards and charts inline instead of treating them as optional - #33

Merged
profunctor merged 2 commits into
joomcode:mainfrom
norightsforlis:feat/render-visuals-inline
Aug 20, 2026
Merged

Render the cards and charts inline instead of treating them as optional#33
profunctor merged 2 commits into
joomcode:mainfrom
norightsforlis:feat/render-visuals-inline

Conversation

@norightsforlis

Copy link
Copy Markdown
Contributor

The problem

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 quietly took the markdown fallback and the seller never saw a card or a chart. Verified: 13 skills carry a ## Visualization section, and none of them named a rendering mechanism. The visuals were effectively dead on the surface most people use.

What changed

The 13 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. One canonical block, inserted byte-identically in all 13 so the behaviour cannot drift:

  • Order: cards first, then charts, then the written read.
  • The data table and the estimate disclaimer stay 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.
  • Where no visual surface exists at all, the markdown-plus-text-cards fallback still applies.

What deliberately did not change

  • No card or chart was added, renamed or removed. Every existing spec, data threshold ("skip under about four", "only after N accumulated runs"), palette rule and per-marketplace window label is untouched. This PR changes when the visuals render, not what they are.
  • The five skills that never specified visuals are left alone — single-product analysis, buy-box comparison, product change monitor, same-product finder, and the copilot. Nothing was invented for them.
  • Existing conventions are preserved as written: the medal palette stays Mercado Livre only (Shopee shop tiers render as plain text), change-column headers stay words rather than a bare delta symbol, the movement legend still appears only when those symbols are actually in the table, and the top-keywords skill still carries no estimate disclaimer because its data is real.

Verification

  • Only the ## Visualization section changed in each file — the rest of every file is byte-identical to the base.
  • The canonical block is verbatim in all 13.
  • Spec bullets per skill before → after: identical in 12; seller-overview-tracker goes 4 → 3 because its old "Otherwise (plain terminal, no visual support)" fallback bullet is now covered by the canonical block — its metric-cards bullet survived, reworded from conditional to unconditional.
  • Description gates (≤1024 characters, no angle brackets) pass for all skills; scripts/check-public-safety.sh passes.

Note: this branch is based on #32, so it also carries that one-line public-safety fix. Merge #32 first and this rebases cleanly.

🤖 Generated with Claude Code

Elizaveta Orekhova and others added 2 commits August 19, 2026 15:40
The public-safety grep bans "token" because it normally means a credential.
The Shopee title-search guidance added in joomcode#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>
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>
@profunctor
profunctor merged commit 421426d into joomcode:main Aug 20, 2026
1 check passed
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