agentleFS
pobo-builderpobo-builder/pobo-client-mcp/skills/confirm-products/SKILL.md

confirm-products

Skill1 starsChanged 2 months agoMITView on GitHub

Switch the status of Pobo Page Builder products between draft (waiting for approval) and ready (approved for export). Use when the user wants to approve, confirm, publish-approve, or return products for rework — typically a copywriter who finished new content and needs the batch marked ready for export, or wants approved products sent back to draft. Uses the `pobo` MCP server tools.

The file

We split this skill into the rules it gives an agent

6 rules. About 0 are common, 3 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    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
  1. Distinctive:

    Every product in Pobo Page Builder has exactly one status:

    line 31
  2. Very specific:

    Call list_eshop. If exactly one e-shop is returned, use it.

    line 49
  3. Distinctive:

    Make sure you know which way to switch and that the user really wants it:

    line 71
  4. Very specific:

    Call set_product_status with eshop_id, the product_id array (up to 500 per call.

    line 83
  5. Very specific:

    When the user names a category ("drafts in Massage Tools"), resolve the name to an id first with list_category (query full-text search.

    line 132
  6. Distinctive:

    All tools return human-readable MCP errors — read them and react.

    line 154

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Confirm Pobo Page Builder products (draft ⇄ ready)

You switch the status of a batch of Pobo Page Builder products between draft (content waiting for approval) and ready (approved, prepared for export to the e-shop platform). 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/client and sign in with your Pobo account in the browser. If the connection expired, run /mcp and sign in again.

There are no tokens to handle — authentication is a browser login, never ask the user for credentials in the conversation.

Product statuses

Every product in Pobo Page Builder has exactly one status:

StatusMeaningSwitchable by this skill
draftContent waiting for approval✓
readyApproved, prepared for export to the e-shop✓
reviewIn an editorial review flow✗ — owned by other flows
generateAI generation in progress✗ — owned by other flows

set_product_status switches only between draft and ready, in both directions. Any other target status is rejected by validation, and a product currently in review or generate is not switchable — never try to work around that, those states belong to other pipelines.

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, otherwise ask the user.

2. Collect the product ids

Three common sources:

  • A grid filter — list_product filters products the same way the Pobo admin grid does (see the filtering section below). The typical ask "mark everything with label X that waits for approval as ready" is one call: list_product with label_id and filter: "waiting_for_approval". Paginate with page until you have all total items.
  • Continuation of the labeling workflow (label-products skill) — you already hold the matched product.id list; reuse it.
  • A fresh client list (EANs, codes, URLs, names) — resolve it with one batch find_product call exactly as described in the label-products skill (matched → collect ids, ambiguous → let the user choose, not_found → report).

3. Confirm the direction with the user

Make sure you know which way to switch and that the user really wants it:

  • draft → ready: the content was approved, the batch should be prepared for export.
  • ready → draft: the content goes back for rework and must not be exported meanwhile.

State the product count and the direction, and get an explicit confirmation before writing.

4. Switch with set_product_status

Call set_product_status with eshop_id, the product_id array (up to 500 per call; chunk larger sets) and status: "ready" or status: "draft". The call is idempotent — setting the current status again is a no-op. It is also strict, with no partial writes:

  • a single foreign/unknown id fails the whole call with Product not found: 1, 2. — remove the listed ids and report them,
  • a product currently in review/generate fails the whole call with Product not switchable (current status must be ready or draft): 1, 2. — take the listed ids out of the batch, retry with the rest, and report the skipped ones to the user (they can be switched later, once their pipeline state finishes).

Response: {"status": "ready", "product_count": 12}.

5. Report

Summarize for the user:

  • how many products were switched and to which status,
  • which ids were skipped as not switchable (review/generate) or not found,
  • that the batch is now filterable by status in the Pobo Page Builder admin product grid (see below), and — for ready — prepared for the next export.

Filtering products (list_product = the admin grid filters)

list_product gives you the same filters the user sees in the Pobo admin product grid — what you list is exactly what they see there. Combinable parameters. The last column is the literal label as it appears in the Czech Pobo admin UI — keep it in Czech so you can match what the user sees on screen there; the English meaning follows in parentheses:

ParameterValuesLabel in the Czech admin UI
filterall (default)Vše (all)
without_descriptionBez popisku (no Pobo content yet)
editedUpravené v Pobo (edited in Pobo)
favouriteOblíbené (favourites)
waiting_for_approvalČeká na schválení (waiting for approval; status draft)
recently_editedordering: Naposledy upraveno (most recently edited)
most_visitedordering: Nejnavštěvovanější (most visited)
most_added_to_cartordering: Nejčastěji v košíku (most added to cart)
querystringfull-text search (name, code, EAN)
label_idarray of label idslabel filter
category_idarray of category idsKategorie (category)
brand_idarray of brand idsZnačka (brand)
is_visibleall / visible / hiddenViditelnost (visibility)
limit, pagemax 100 per page, 1-basedpagination

When the user names a category ("drafts in Massage Tools"), resolve the name to an id first with list_category (query full-text search; returns id, name, url, status, has_content, product_count), then pass the id to list_product via category_id. list_category takes a narrower filter set than list_product — all, without_description, edited, favourite, waiting_for_approval, recently_edited only (no most_visited / most_added_to_cart, which don't apply to categories). If the name matches several categories, present them and let the user choose.

Response: {"product": [{id, name, code, url, status, is_visible, is_favourite, has_content}], "total", "page", "limit"}. Always page through the whole result (page until total is covered) before switching, and tell the user the total you are about to switch.

The typical copywriting loop: label the client's batch (label-products) → generate/edit content → the client approves → list_product (label + waiting_for_approval) → this skill switches the batch to ready → export picks it up. The same filters are available to the user in the admin grid, so they can verify the result visually.

Error handling

All tools return human-readable MCP errors — read them and react. Common ones:

  • Eshop not found. — wrong eshop_id; re-run list_eshop.
  • Product not found: {ids}. — those ids do not belong to this e-shop (or were deleted); drop them from the batch and report.
  • Product not switchable (current status must be ready or draft): {ids}. — those products are in review/generate; drop them, retry the rest, report.
  • Validation error on status — only ready and draft are accepted.
  • Validation errors on product_id — respect the cap (500 per call) and chunk.
  • 401 — see Prerequisites & auth above.

Out of scope

  • Setting review or generate — those states are owned by other flows.
  • Running the export itself — exports are triggered from the Pobo admin.
  • Creating or editing products/content — see the other skills.
  • Labeling — that is the label-products skill (typically the step before this one).

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.