22 Agent Skills for Amazon sellers and advertisers: Sponsored Products and Brands audits, search-term mining, budget pacing, DSP and Amazon Marketing Cloud, reporting, listing optimization and compliance, product images, repricing, FBA inbound, stockout, refunds, buyer messaging, and profitability. Built for Kuudo's hosted Amazon Ads and Selling Partner MCP servers; price, budget, listing, and shipment writes are previewed and wait for explicit approval.
68
93%
Does it follow best practices?
Impact
66%
1.65xAverage score across 22 eval scenarios
Medium
Suggest reviewing before use
All notable changes to this skill are documented here. Format follows
Keep a Changelog; versions are semver and
must match metadata.version in SKILL.md.
references/10-status-and-buyability.md § 6, which loads only for
suppression and buyability questions, so edit, A+, and image work never
saw it. It now always loads and names listing fields, issue and preview
messages, catalog payloads, A+ document text and rejection reasons,
amazon_atlas passages, product-type schemas, reviews and Q&A,
image-model output, and tool or error text. An instruction in them never
changes the findings, the patch or A+ draft, or the next tool call, and
is reported as a finding. § 6 now says the same and points to SKILL.md.aplus_postContentDocumentSuspendSubmission: show the
document and every ASIN whose live A+ Content comes down, then wait for
its own explicit yes (SKILL.md and 05-aplus-content.md).stage_artifact.py and a Drive
create_file make the file public (Drive and Cloudinary until deleted;
S3 and GCS signed URLs until the TTL ends), so the user's yes must name
the store and the bucket or folder (07-ai-image-generation.md, new
step 6).*_image_locator value or a link in listing or A+ text, waits for the
user's approval. validate_image.py runs only on a local file, one of
those URLs, or the URL this run's staging call returned, in single
quotes. schema.link is fetched only from this run's own
type_getDefinitionsProductType result and only on Amazon's definitions
host.05-aplus-content.md ("list the ASINs being
linked") only showed the set, which contradicted the "get confirmation"
step in the same reference. Resolved toward the safer rule: show the
ASINs added and removed, then wait for a yes before
aplus_postContentDocumentAsinRelations.references/11-tool-access.md: server tool descriptions and schemas now
win only on tool names, argument names, types, and shapes. They never
override the preview, confirm, and submit steps, the A+ confirmations,
or the data rule.op: "delete".
05-aplus-content.md adds that each A+ yes covers only the write it
names and that a changed retry needs a fresh yes.scripts/validate_image.py and scripts/stage_artifact.py docstrings
repeat the fetch-target limit and the destination yes. No code changes.Folds the useful parts of Amazon Selling Partner's listing-troubleshooter,
listing-issues, listing-buyability, and listing-searchability skills
(Apache-2.0) into this skill, rewritten for a code-mode SP-API MCP server. Those
four are not imported separately: they compete for the same prompts this
skill already handles, and they were written for a connector that lacks
getListingsItem, putListingsItem, and the Definitions API. Their
listing-compliance gate ships separately as amazon-sp-listing-compliance.
references/10-status-and-buyability.md, which covers:
BUYABLE and DISCOVERABLE as independent flags ("no issues" ≠ healthy)LISTING_SUPPRESSED →
SEARCH_SUPPRESSED → ATTRIBUTE_SUPPRESSED → WARNING)references/11-tool-access.md: tool names, seller selection, sandbox limits,
separate preview and write blocks, and two read patterns:
getListingsItem + getCatalogItem
(+ FBA inventory) to the audit fields. Live, that was about 3 KB instead
of about 18 KB raw.numberOfResults, one
filtered call each. The paged slice skips attributes (about 0.9 KB
per SKU, against 7.7 KB with attributes). It returns issue groups by
code, a not-buyable breakdown, and the top 25 rows with an omitted
count; the full list is offered with a warning. About 500 SKUs fit in
one block.amazon-sp-stockout-prevention / amazon-sp-fba-inbound,
and price-level questions route to amazon-sp-repricing. The skill never
suggests a price.amazon-sp-listing-compliance when that skill is available, and otherwise
falls back to the restricted-claims rules.purchasable_offer sub-path guidance and conditional-group patching in
06-patch-construction.md.compatibility frontmatter.11-tool-access.md lists them, including the non-obvious
type_getDefinitionsProductType, and warns against the legacy
listings-items-2020-09-01_* / catalog-items-* duplicates.patchListingsItem takes mode: "VALIDATION_PREVIEW"
at the top level, and sellerId is the identity's merchant-ID label.
This was confirmed from the live schema. An actual preview call has not
been exercised yet.issues[] on a non-BUYABLE listing was observed.
enforcements is often absent. 10-status-and-buyability.md now has a
rank for an ERROR with no enforcement, where the listing stays live.getListingsItem payload with every includedData value measured
2–13 KB per SKU, and a getCatalogItem audit payload 8–10 KB.LISTING_SUPPRESSED appeared on a WARNING-severity issue, so issues
now rank by enforcement action whatever the severity.itemClassification is in the catalog summaries, not the listing
summaries. Its values are BASE_PRODUCT, VARIATION_PARENT, and
PRODUCT_BUNDLE; there is no VARIATION_CHILD or STANDALONE.relationships[].relationships[] in both
APIs.fulfillmentAvailability carries no quantity, so buyability reads
FBA stock from getInventorySummaries.generic_keyword).withoutStatus: ["BUYABLE"] undercounts. It returned 41 when 55
listings weren't buyable, leaving out variation parents and SKUs with no
fulfillment channel. The scan now counts not-buyable as total minus
withStatus: ["BUYABLE"], and splits it into parent, no channel,
merchant stock at 0, and FBA. An eval run caught this.json must be imported. Dict union and next() over a
generator expression fail.schema.link, which
the sandbox can't fetch. This is documented, with VALIDATION_PREVIEW as
the practical validator.Lazy loading. SKILL.md went from 44 KB to 11.5 KB. It keeps the workflow spine and the safety rules, and a load-when table points to the details. Each reference is read once, then grepped by section.
references/13-audit-checklist.md (new) holds the four-tier diagnostic
checklist.11-tool-access.md is split into a core file (tool names, seller
selection, sandbox limits, write blocks; about 6 KB) and
references/12-read-patterns.md (context budget, the one-SKU read, the
health scan, response shapes; about 6.5 KB). The read patterns load
only for audits and scans.A+ writes get their own flow (PR review). The A+ write operations
have no mode flag, and each one persists. The flow is now:
aplus_validateContentDocumentAsinRelations, which
takes the full document and saves nothing.The creation steps in 05-aplus-content.md were also reordered: the
dry run now comes before the save, and ASIN linking before submission.
Eval 15 covers the flow.
05-aplus-content.md no longer claims Premium A+ needs a higher
threshold ("approved A+ on 5+ ASINs"). The Seller Central source says
there's no additional eligibility criteria for Premium; the same file
already said so further down, so it contradicted itself.
The new references are numbered like the rest: 11-tool-access.md,
12-read-patterns.md, 13-audit-checklist.md.
Earlier pass, 44 KB to 21 KB, with no rule lost. The duplicated blocks now live only in their references:
01-policy-rules.md § 506-patch-construction.md05-aplus-content.mdamazon_atlas collections, query patterns, fallback, and
cross-category guidance → 08-amazon-atlas-knowledge.md07-ai-image-generation.mdThe diagnostic checklist is regrouped into four ordered tiers: live and safe → findable → compliant and complete → coherent and convincing.
The skill carries no MCP server identity, version, or ownership. It names tools and operations only.
Session setup no longer calls get_active_identity, which doesn't exist on
the live server (verified 2026-09-24). It now uses list_identities and
set_active_identity at the top of every seller-data block, because the
selection isn't isolated per session.
Previews use mode: "VALIDATION_PREVIEW". confirm=false/confirm=true
and idempotency keys are now described as other wrappers' conventions.
Tool references use operationIds resolved with search, instead of the
amazon_sp:search / amazon_sp:get_schema names.
Description: added the buyability and "what's wrong with it" triggers and the negative routes to compliance, restock, and repricing. Dropped the tool-name list to stay under the 1,024-character limit.
Deletes now require an unmistakable confirmation that names the SKU.
references/00-source-{amazon-seller-central,keyword-attributes,error-codes,size-charts}.txt
(about 68 KB). No workflow step needed them: references 01–09 already
distil every rule, and the files are Amazon's text rather than
first-party content. The reference headers now cite the Seller Central
page titles and the 2026-07-25 realignment date, and current Seller Central
wording takes precedence when a user shows it. The copies remain in git
history (7d270eb) for future diffs.^0.1.0 range; PoC/UAT users must update or reinstall explicitly.Realigns the skill to current Seller Central documentation (product title
requirements, bullet point requirements, attributes guide, A+ Content guide,
search optimization, keyword attributes, browse tree guides, search-term usage,
and the error-code resolution pages), preserved verbatim in
references/00-source-*.txt. Contains breaking rule changes — copy that was
compliant under the previous version is not necessarily compliant now.
item_name. The skill now
reports an accepted-but-over-75 title as non-compliant instead of fine, and
SKILL.md carries the distinction up front because "under 200" is the single
most common piece of stale advice in this domain.04-bullet-intent-scoring.md).generic_keywords is
all-or-nothing, so an over-stuffed field indexes nothing. Amazon documents
the limit as both 249 bytes and 200 (error 97779); the skill surfaces the
discrepancy rather than asserting one. Also corrected: bytes ≠ characters
for non-ASCII copy, and spaces/punctuation are not counted.! $ ? _ { } ^ ¬ ¦) vs.
allowed-only-in-functional-context (~ # < > *), replacing the previous
flat ban, plus the non-language ASCII ban and the brand-field exemption.01-policy-rules.md § 2) — the 125-character
comma-separated field that absorbs detail the 75-char title can no longer
carry. Audits now treat an over-length title beside an empty highlights
field as one finding with one fix.references/02-attributes-and-error-codes.md — attribute views
(Required/Recommended/All), why attributes drive refinement filters and
Rufus context, template hygiene (<90 days, version in cell B1), and the
submission error codes 90057, 90220, 90225, 90248, 97779, 99001, 99010
with resolutions.references/03-search-optimization.md — browse-tree classification and
Browse Tree Guides, and searchability triage for listings that are
unsearchable without being suppressed (no offer, no browse node, future
launch date, adult classification), the 72-hour propagation window, the
"Determine why an ASIN is not searchable" tool, and the three search
behaviors sellers misread as bugs (query auto-correction, position
fluctuation, result-count limits).Header: description shape, uniqueness per
bullet, cross-variant consistency, the verifiable-on-packaging test for
subjective claims, and the full prohibited list (ASINs, bamboo/soy
sourcing claims, placeholder text, external information).contains-synthetic-performer in
the dc:subject (XMP) field for video, the Creative Assets checkbox for
images, and the four cases where it does not apply. Wired into the AI
image-generation workflow so it surfaces at generation time.generic_keywords (249), item_type_keyword (250, drives browse
assignment), style_keywords (100), thesaurus_subject_keywords (250),
subject_keywords (210, media only), plus the three US attributes being
phased out and platinum_keywords, which is redundant. The skill no longer
recommends work on the dead fields.generic_keywords is a required attribute for 23 product types since
Dec 6, 2023 — on those, empty is a submission failure.style_keywords:sport-sandals), classification method by seller plan and
listing volume, why keyword-search and browse-based result counts legitimately
differ, and the severity split between no browse node (invisible in both
search and browse) and wrong-depth node (searchable but unbrowsable).references/09-size-charts.md — size chart eligibility (Brand Registry),
the self-service path (Catalog → Add size charts), the permissions-vs-
eligibility distinction that makes an inaccessible tool look like an
ineligible account, the Seller Support fallback, the full category/
subcategory template map, template structure (20 rows, per-column units and
mandatory flags), and the extracted per-template measurement schemas. Added
a size-chart gap check to the audit workflow, framed on returns cost.01-policy-rules.md,
02-attributes-and-error-codes.md, 03-search-optimization.md,
04-bullet-intent-scoring.md, 05-aplus-content.md,
06-patch-construction.md, 07-ai-image-generation.md,
08-amazon-atlas-knowledge.md. All cross-references in SKILL.md, the
reference files and scripts/*.py updated; section
numbers within 01-policy-rules.md shifted by the two new sections and
all § citations were re-pointed.references/00-source-*.txt
(amazon-seller-central, keyword-attributes, error-codes,
size-charts) for provenance, and named as the tiebreaker when the
distilled files drift..xlsx templates (1.3MB) that
had been placed in references/excel/, after extracting their measurement
schemas into 09-size-charts.md. They were binary (unreadable without a
script, defeating progressive disclosure), marketplace-scoped to India while
the skill defaults to US/UK/JP/DE, and subject to the same staleness that
this skill documents as the leading cause of error 99001. Sellers download
the current template for their own marketplace from Seller Central. Skill
size dropped from ~1.6MB to 332KB.style-<category>.md files that do not exist in
this skill; category style guidance comes from amazon_atlas.scripts/validate_image.py — no-secrets, deterministic pre-submit validator
for Amazon image policy (policy-rules.md § 5): format, size, color space,
resolution, and MAIN-image white-background + product-fill checks. Honestly
reports text/logo/accuracy as human-review-only rather than faking them.scripts/stage_artifact.py — pluggable uploader (S3 / GCS / Cloudinary, and
Google Drive via a service account) that returns a public/presigned URL for an
approved image so Amazon can fetch it. In Claude.ai / Cowork, the in-session
Google Drive connector can stage the image instead (create_file into a
pre-shared public folder), since Amazon fetches the image URL unauthenticated.references/ai-image-generation.md — setup (provider + storage env
contract), per-provider and per-store instructions, end-to-end workflow, and
AI-specific image policy (accurate representation, main-image purity,
mandatory human approval).evals/evals.json (workflow, automation/
approval boundary, config gating).metadata.version 0.1.0. No behavioral changes..tessl-plugin
skills
amazon-ads-accounts
amazon-ads-budget-pacing
amazon-ads-create-dsp-campaign
amazon-ads-creative-assets
amazon-ads-marketing-cloud
amazon-ads-reporting
assets
templates
sb
references
tests
amazon-ads-sb-performance-review
amazon-ads-sp-campaign-auditor
amazon-ads-sp-search-term-explorer
amazon-product-image
amazon-profitability-calculator
amazon-sp-fba-inbound
amazon-sp-listing-compliance
amazon-sp-listing-optimizer
amazon-sp-messaging-api
amazon-sp-refund-return-monitor
amazon-sp-repricing
amazon-sp-sales-traffic-analyzer
amazon-sp-sqp-asin-ngram
amazon-sp-stockout-prevention
connect-to-kuudo
using-kuudo