label-products
Skill1 starsChanged 2 months agoMITView on GitHub
Label Pobo Page Builder products from a client-supplied list of identifiers (EANs, product codes, product URLs, or product names). Use when the user wants to tag, label, mark, or organize products in Pobo Page Builder — typically a copywriter who received a messy product list (xlsx, PDF, plain text) from a client and needs those products labeled so they can be filtered in the Pobo admin grid. Uses the `pobo` MCP server tools.
In this repository9 other files it gives its agents.
- confirm-productsSkill
- design-descriptionSkill
- diagnose-contentSkill
- manage-automationSkill
- manage-promptsSkill
- product-analyticsSkill
- style-widgetsSkill
- white-label-contentSkill
- write-blogSkill
The file
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 2 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 34
Call list_eshop. If exactly one e-shop is returned, use it.
- Distinctive: line 64
Verify the matches make sense: skim the returned product names against the client's list and flag anything suspicious to the user.
- Very specific: line 69
Call list_label first — the user may already have one.
- Very specific: line 77
Call assign_product_label with eshop_id, label_id and the collected product_id array (up to 500 per call.
- Distinctive: line 104
All tools return human-readable MCP errors — read them and react.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Label Pobo Page Builder products from a client-supplied list
You resolve a client-supplied list of product identifiers to Pobo Page Builder products and attach a label to them, so the user can filter the batch in the Pobo admin grid (e.g. to run content generation on it). All logic runs on the Pobo Page Builder backend.
Communicate with the user in their language (typically Czech).
Prerequisites & auth
The pobo MCP server is connected once via OAuth — the user runs
claude mcp add -s user --transport http pobo https://api.pobo.space/mcp/client
and logs in with their Pobo Page Builder account in the browser. If the pobo
tools are unavailable, or MCP calls fail with 401 / unauthorized, tell the user:
Connect the Pobo server with
claude mcp add -s user --transport http pobo https://api.pobo.space/mcp/clientand sign in with your Pobo account in the browser. If the connection expired, run/mcpand sign in again.
There are no tokens to handle — authentication is a browser login, never ask the user for credentials in the conversation.
Workflow
1. Pick the e-shop
Call list_eshop. If exactly one e-shop is returned, use it. If multiple, match
against the client's domain when the input contains product URLs (e.g. URLs on
www.sportrec.cz → the e-shop with that URL), otherwise ask the user.
2. Collect the identifiers
The input arrives in any shape — xlsx, PDF, e-mail text, a pasted table. Extract one identifier per product, prefer them in this order of reliability:
- product URL (most reliable — exact match regardless of http/https, www, trailing slash)
- EAN (8 or 13 digits)
- product code
- product name (least reliable — names are not unique)
Deduplicate. Do not reformat or "clean" URLs beyond trimming whitespace — the server normalizes them itself.
3. Resolve with find_product
Send the identifiers in one batch call (up to 100 per call; chunk larger
lists): find_product with eshop_id and identifier: [...]. Leave type on
auto-detection unless the whole list is verifiably one kind. Each identifier
comes back as:
matched— collectproduct.idambiguous— up to 5 candidates; present them to the user and let them choose, never silently take the first onenot_found— collect for the final report
Verify the matches make sense: skim the returned product names against the client's list and flag anything suspicious to the user.
4. Pick or create the label
Call list_label first — the user may already have one. If the user named a
label, use it; otherwise propose a descriptive name (client/brand + purpose +
month, e.g. "Sportrec update 07/2026") and confirm with the user. Create it with
create_label — it is idempotent by name (action: created | existing), so a
retry or an admin-created label of the same name never duplicates.
5. Assign
Call assign_product_label with eshop_id, label_id and the collected
product_id array (up to 500 per call; chunk larger sets). The call is
idempotent — re-attaching already labeled products is a no-op. It is also
strict: a single unknown product id fails the whole call with
Product not found: 1, 2. — remove the listed ids and report them, do not
guess replacements.
6. Report
Summarize for the user:
- how many products got the label (and the label name),
- the
ambiguousitems and what was chosen, - the
not_foundidentifiers — ask the user to fix or complete those inputs (typo in URL, product not imported into Pobo yet, …), - that the batch is now filterable by this label in the Pobo Page Builder admin
product grid — and by you via
list_product(label_id+ grid filters likewaiting_for_approval; see theconfirm-productsskill for the full list).
Rollback
To undo, call assign_product_label with the same label_id and product_id
list and action: "detach". The label itself stays (harmless); the user can also
manage labels in the Pobo admin. Confirm with the user before detaching.
Error handling
All tools return human-readable MCP errors — read them and react. Common ones:
Eshop not found.— wrongeshop_id; re-runlist_eshop.Label not found.— the label does not belong to this e-shop; re-runlist_label.Product not found: {ids}.— those ids do not belong to this e-shop (or were deleted); drop them from the batch and report.- Validation errors on
identifier/product_id— respect the caps (100 identifiers, 500 products per call) and chunk. - 401 — see Prerequisites & auth above.
Out of scope
- Creating or editing products/content — labeling only.
- Deleting labels (the admin UI covers that).
- Styling — that is the
style-widgetsskill. - Setting up the generation prompt for the labeled batch — that is the
manage-promptsskill (a natural next step once the batch is labeled). - Switching product status (draft ⇄ ready) after the content is approved —
that is the
confirm-productsskill.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

