{"id":92267,"plugin_id":"plugin_asdk_app_6ae474ea2c1c81918efff2bfa353d0a5","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-11-12T00:09:46.326Z","digest":"62f2a0db4624c50560cc715139e335576af0cc7e48b68679c49f59af3112c90b","against":null,"payload":{"description":"Use Cituna to prioritize visibility fixes and content opportunities, manage gap statuses, inspect keyword and article queues, queue requested articles, edit or refresh AutoSEO articles, skip queued topics, and record pages already published.","included_files":[],"name":"content-and-fixes","skill_md_contents":"---\r\nname: content-and-fixes\r\ndescription: Use Cituna to prioritize visibility fixes and content opportunities, manage gap statuses, inspect keyword and article queues, queue requested articles, edit or refresh AutoSEO articles, skip queued topics, and record pages already published.\r\n---\r\n\r\n# Manage content opportunities and visibility fixes\r\n\r\nRead [connection and evidence rules](../../references/connection-and-evidence.md).\r\nFor a weekly plan built from evidence, with drafting and 28-day re-checks, use the\r\n`autopilot` skill.\r\n\r\n## Prioritize existing work\r\n\r\n1. Read `list_gaps` for an explicit scan ID or the domain's latest audit. Preserve\r\n   gap keys, category, impact, effort and existing status.\r\n2. Use `list_keywords` for keyword evidence and article stages. Filter\r\n   `stage: \"none\"` for keywords with no content yet. The optional Search Console\r\n   join is enabled by default and metered; `includeSearchConsole: false` skips\r\n   that join. It does not make all MCP usage unmetered.\r\n3. Inspect `list_content_queue` before proposing or queueing an article. Match\r\n   the requested `status` (`all`, `live`, `review`, `rejected`, `attention`).\r\n   For a complete article inventory, pass each returned `nextCursor` as `before`\r\n   until there is no next cursor; `limit` accepts 1 to 50. Later pages contain\r\n   articles only, so keep the first page's pipeline context. Disclose partial\r\n   coverage if you stop early. Existing\r\n   queued, drafted or published work should not be duplicated. Distinguish a\r\n   live rank-check result from a period-average GSC position; missing rank-check\r\n   results outside its range are not evidence of zero search visibility. For the\r\n   articles alone, `list_articles` returns one short row per AutoSEO article with its live\r\n   URL and when it was published, last sent to the site, edited and refreshed.\r\n4. Rank actions using actual impressions, observed citation gaps, relevance and\r\n   effort. Keep estimates labeled. Use the search-console and citation-sources\r\n   workflows for supporting evidence without automatically changing state.\r\n\r\n## Apply requested actions\r\n\r\n| Intent | Tool and inputs | Verification |\r\n| --- | --- | --- |\r\n| Change a fix's status | `set_gap_status` with returned domain, `gapKey`, and `todo` / `doing` / `done` | Read `list_gaps` |\r\n| Queue an article | `queue_article` with domain and exact keyword from `list_keywords`; include supported evidence when available | Read `list_content_queue` and keyword state |\r\n| Record an already-live page | `mark_article_published` with domain, exact keyword, full HTTPS URL, optional title | Read content queue or keyword state |\r\n| Edit an AutoSEO article's text | `get_article` with the `id` from `list_articles`, then `update_article` with only the fields to change (`sections`, `faqs` and `tags` replace whole lists) | Read back with `get_article` |\r\n| Refresh a live AutoSEO article | `enrich_article` with the `id`, only when `list_articles` shows `enrich.eligible: true` | The returned `before` and `after` |\r\n| Remove queued topics | `skip_queued_topics` with ids from `list_content_queue` (`queued[].id`) | Read `list_content_queue`; `notQueued` ids were not open |\r\n\r\nQueueing schedules an AutoSEO draft on its next run and may have downstream\r\neffects under the user's existing automation settings. It does not guarantee an\r\nimmediate draft or publication. Explain that effect when preparing the change.\r\nHandle duplicate notices as existing work, not a new queued article.\r\n\r\n`mark_article_published` records a page that is already live; it does not publish\r\nor edit a CMS page. Use it only when the user has supplied/confirmed the actual\r\npublished page or the publication has otherwise been verified. It should not\r\nbe called merely because text was drafted in chat.\r\n\r\n`update_article` changes Cituna's stored copy only: a page already on the site\r\nchanges when the user sends the article again from the Cituna app. `enrich_article`\r\ndoes change the live page (its title, description and up to two FAQ answers) and\r\nuses one AutoSEO generation; call it only on a clear instruction for that article.\r\nA refusal returns `refreshed: false` with a `reason` and spends nothing.\r\n\r\nDo not invent CMS publishing, billing or automation-setting tools. For actions\r\nabsent from the current MCP tool list, explain the limitation and link to Cituna\r\nfor the specific app step.\r\n\r\n## Relevant tools\r\n\r\n`list_gaps`, `set_gap_status`, `list_keywords`, `list_content_queue`,\r\n`list_articles`, `get_article`, `queue_article`, `mark_article_published`,\r\n`update_article`, `enrich_article`, `skip_queued_topics`.\r\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}