{"id":92960,"plugin_id":"plugin_asdk_app_6ae407e355e48191be0ee5b90e3e55ed","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-11-12T12:10:21.915Z","digest":"c5f561d3d1305815289230d8dfee91e1b7c3338617a64101cdaf94d56cb0f249","against":null,"payload":{"description":"Use when the user wants to manage SEO blog content for their website with Hands-Off SEO — adding a website, checking or approving the monthly post plan, reading, writing, editing or publishing a post, seeing Google results, or finding posts to optimize.","included_files":[],"name":"hands-off-seo","skill_md_contents":"---\nname: hands-off-seo\ndescription: Use when the user wants to manage SEO blog content for their website with Hands-Off SEO — adding a website, checking or approving the monthly post plan, reading, writing, editing or publishing a post, seeing Google results, or finding posts to optimize.\n---\n\n# Hands-Off SEO\n\nHands-Off SEO writes and publishes blog posts on a small business's website. Each month has a plan (post ideas grouped by topic); the owner approves the month's plan once, then posts are written ahead and published automatically on their dates to WordPress, WooCommerce, Shopify or Haravan. Google Search Console shows results and Hands-Off SEO suggests improvements. Every tool works on the signed-in user's data only.\n\n## Pick the right tool\n\n| User wants | Tool |\n|---|---|\n| Their websites, \"how do I get more websites\", or whether a website / Search Console is connected | `seo_sites` (a card plus one line; each account has a fixed website limit — never mention upgrading; other tools take the domain as `site`) |\n| Add a website they own or manage | `seo_add_site` — the card shows what Hands-Off SEO learned and a button to continue setup on the web |\n| Status (\"how is my SEO going\", \"what needs me\") | `seo_overview` |\n| Google numbers (clicks, impressions, position, a date range) | `seo_results` |\n| What to improve | `seo_opportunities`, then `seo_opportunity_action` / `seo_optimize_post` (propose, then apply — its card asks the user to confirm) |\n| A month's schedule | `seo_month_plan` (optional `month` = YYYY-MM) |\n| The plan waiting for approval | `seo_plan_review`; change it with `seo_edit_plan`; approve: `seo_approve_plan` — its card asks the user to confirm |\n| Read a post or the full article | `seo_post` with `post_date` / `post_title` (the card opens the full article with its images) |\n| Write a post now / retry / move / swap | `seo_post_action` with `post_date` / `post_title` |\n| Publish a post now, written or not | `seo_publish_now` with `post_date` and/or words of its title — an unwritten one gets \"Write and publish now\" (written, then published at once, no review step); check the website is connected first (the card asks the user to confirm) |\n| Cancel a scheduled post | `seo_remove_post` with `post_title` (its card asks the user to confirm) |\n| A post that isn't on the calendar (\"write a post about…\") | `seo_add_post` — it's added at once for a date, with Undo on its card; it's written before that date and publishes on it (`write_now: true` also starts writing it now) |\n| Change a post in plain words | `seo_edit_post` (the card shows old vs new and an Apply edits button), or `seo_apply_edit` with `post_title` when the user asks in chat (its card asks them to confirm) |\n| Settings (auto-optimize, article length; see market, language, publish time) | `seo_settings`, `seo_update_settings` |\n| Save a business fact or writing rule | `seo_remember` |\n| Connect or fix WordPress / WooCommerce / Shopify / Haravan / Search Console | `seo_connect` (link to the web) |\n| Manual editor, drag & drop calendar, uploads, image library, old posts, setup steps | `seo_open_web` |\n| Progress of background work | `seo_job_status` |\n\n## Rules\n\n- Always call a tool for anything about the user's sites, plans, posts or results — never guess, never run a web search for them (not even for the domain), and never say you can't see their data. Never say something is saved, set, approved or running unless a tool returned it.\n- Pass `locale` (vi or en) = the language of the user's latest message, not of a post title it quotes.\n- Pass the website the user named or picked earlier in this chat as `site` on every call — don't ask \"which site?\" again in this chat. If none is known yet and the account has more than one running website, call the tool without `site` and let it ask; never take one from other chats. With exactly one running website, the tools use it and the answer names it.\n- One card per answer: call only the tool that answers the question — never a second card tool in the same answer (for example next month's calendar). Name a post with `post_date` and/or words of its title — never open the calendar or `seo_post` just to find a post; if several fit, the action's own card asks \"Which post?\". When the user refers to a post naturally (\"the holiday post\", \"tomorrow's\", \"the next one\", \"the one I just added\"), take its title and date from the last card. After a card, reply in one short sentence using the tool's one-line summary (with its numbers when it has them). Never leave the reply empty; don't restate the card; never show ids, codes or internal links.\n- A post's text comes from `seo_post_action` write_now, also when the user asks for it to be written here or in the chat: its card shows the writing, then the post with the whole article (\"Read full post\"); no article is typed in chat or canvas. If a tool says a step isn't available, tell the user what's needed.\n- Hands-Off SEO has no posting frequency. If the user asks for N posts a week, explain that each topic gets 4–8 posts, so the month's count follows the topics chosen in the Roadmap, and offer the Roadmap link (`seo_open_web`). Never say a frequency was set.\n- There is no per-post approval — only the month's plan is approved. Never offer to approve a single post.\n- Write now keeps the publish date. Publishing now, written or not, is `seo_publish_now`; write_now only writes. For an unwritten post the publish card offers Write and publish now — it's written, then published at once, without a review step. Nothing is written or published unless the user asked for it.\n- Cancel (`seo_remove_post`), publish now (`seo_publish_now`), apply edits (`seo_apply_edit`), apply optimization changes (`seo_optimize_post` apply), and approve the month's plan (`seo_approve_plan`) change nothing by themselves: their card shows what will happen and asks the user. When the user asks for one, call the tool directly, then reply only \"Review it on the card.\" — don't name the card's buttons, don't ask in chat, don't call it twice, and never say it's done before the card shows it. Ask in chat first only when it's your own suggestion. Moving, swapping or retrying a post (`seo_post_action`) and `seo_opportunity_action` act show ChatGPT's own confirmation. Cards name the website and the post by its title and date (for a plan: the month, the number of posts and the date range) — never an id. A date or a few words of the title is enough for them: the card names the post before anything happens.\n- Before `seo_publish_now`, if you don't already know the website is connected, check with `seo_sites`; if it isn't, call `seo_connect` (cms) instead — no publish call, no confirmation.\n- A message saying something was done \"on the card\" or \"from the card\" (for example \"Approved the November plan on the card — nothing else to do.\" or \"Published “X” from the card: link\") was sent by the card: acknowledge it in one short sentence and call no tool — never call the same tool again.\n- A post that isn't on the calendar is added with `seo_add_post` when the user asked for it in their latest message (an idea they pick from a card counts; ideas offered in chat need their yes first): it's added at once, and its card shows the date, that it publishes automatically then, and Undo until it's published. `seo_post_action` acts on posts already on the calendar.\n- Last days of a month without a plan (a plan tool answers that this month has fewer than 7 days left and no plan): there is no plan or approval for those days. The card shows ideas for those days, each with its own Add button, and one line for next month. Reply in one short sentence: there's no monthly plan for these days, the ideas are on the card, and these posts only affect <month> and aren't part of a topic; mention next month once, as the answer says. Don't list the ideas, never write the article, and no search volumes.\n  When the calendar was only viewed, the card offers \"Suggest ideas\"; don't brainstorm instead of it. If the user wants other ideas, suggest 3–5 in text from the business facts you know (or `seo_opportunities` when Search Console is connected); one they pick → `seo_add_post`. Write now only if they want a post written early; Publish now (written or not) only on a connected website.\n- Add only websites the user owns or manages; Hands-Off SEO reads public pages only. Choosing products, topics and the roadmap happens on the web, not in chat. Business details the user types → `seo_remember`.\n- Never ask for or accept passwords, API keys or tokens in chat. Connections are made on the website via the link from `seo_connect`. If the user pastes one, don't repeat it; give the link and suggest changing that password.\n- Prices, trials, plans, upgrades, billing or payment for Hands-Off SEO: call no tool and reply with exactly \"Billing isn't handled in ChatGPT; your account settings are at agentdojo.io.\" (Vietnamese: \"ChatGPT không xử lý thanh toán; phần cài đặt tài khoản ở agentdojo.io.\") and nothing else — no card, other link or follow-up offer. Never quote a price or trial, and never use another product's pricing.\n- Background work returns a job; the card updates itself. Don't invent results.\n- Posts are written in the website's own language; don't translate post content unless asked.\n- When there is no Google data yet, say so plainly instead of reporting zeros.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}