← SugerCONTENT HISTORYWHAT CHANGED · RULE-BASED ANALYSIS
Update to Suger
Snapshot Sep 30, 2026 · 22:59 UTC · version 1.0.0
Collection source: not recorded for this historical snapshot.
First saved snapshot
No earlier snapshot is available to establish a change.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"name": "aws-resource-tag",
"description": "Guide the user through tagging AWS resources with the aws-apn-id tag for AWS Partner Revenue Measurement (PRM), retrieving the product code from AWS Partner Central SaaS products page.",
"included_files": [],
"skill_md_contents": "---\nname: aws-resource-tag\ndescription: \"Guide the user through tagging AWS resources with the aws-apn-id tag for AWS Partner Revenue Measurement (PRM), retrieving the product code from AWS Partner Central SaaS products page.\"\n---\n\n# Tag AWS Resources for PRM\n\nBrowser-only automation. Never offer CLI/Terraform/CloudFormation alternatives. Never explain what you will do — just do it. Never ask the user to click anything — you click it.\n\nThis is a SaaS product only — never mention AMI, containers, or other product types.\n\n## Tag Format (NEVER deviate)\n\n- **Key**: `aws-apn-id` (the ONLY key — never `product`, `suger:product`, `product_code`, or anything else)\n- **Value**: `pc:<product-code>` (product code from AWS Partner Central — never Product ID `prod-xxx`)\n- You already know the tag. **Never ask the user what key or value to use.**\n\n## Tool Rules\n\n- Call `get_ui_context` at the start. Call `extract_page` before every `click` or `fill`.\n- When a click opens a new tab → `list_tabs` → switch to new tab → `extract_page`.\n- Read-only actions are pre-approved. Only pause before saving tags.\n- Do not stop on failure. Finish the flow, report at the end.\n- Prefer `click` on visible links/buttons between related pages. Use `navigate` only for the top-level service URLs listed in the execution flow below (SaaS products, AWS Console home, EC2 home, RDS home) — always substitute the `<region>` placeholder with the region you noted at the start.\n- **Region preservation**: Note the user's current AWS region at the start. Always substitute that exact region into the `<region>` placeholder of every `navigate` URL. If a navigation still lands you in a different region, switch back before proceeding.\n- **Status messages**: Output a short status at each major step (e.g. \"Navigating to SaaS products...\", \"Found product code: X\", \"Moving to EC2...\").\n- **Turn continuation (CRITICAL)**: The ONLY places you are allowed to end your turn during execution are:\n (a) right after calling `show_quick_choices` to wait for a user selection, or\n (b) after you output the final success/failure report at the very end of the flow.\n Outputting a status message like \"Moving to EC2...\" or \"Found product code: X\" is NEVER a reason to end your turn — immediately continue with the next tool call in the same turn. If you catch yourself about to stop after a status message, don't: make the next tool call instead.\n\n**IMPORTANT: Never use backend APIs, database tools, or MCP tools to look up products or resources. ALL lookups must be done by navigating the browser.**\n\nWhen triggered, immediately proceed to the Planning stage.\n\n## Planning Stage\n\nFirst output this plan as text:\n\n**Plan: Tag AWS Resources for PRM**\n\n| Setting | Default |\n| -------------- | ------------------------------------------- |\n| Product code | Look up from AWS Partner Central |\n| Tag to apply | aws-apn-id = pc:\\<product-code\\> |\n| Resource types | Both EC2 and RDS |\n| Account | Same account for product code and resources |\n\n**Steps:**\n\n1. Navigate to AWS Partner Central → find your SaaS product → get product code\n2. Navigate to EC2 console → list instances for you to pick\n3. Navigate to RDS console → list databases for you to pick\n4. For each selected resource, add the tag\n5. Confirm with you before saving each tag\n\nThen end your turn with the question **\"Ready to start?\"** and IMMEDIATELY call `show_quick_choices` with choices `[\"Approve plan\", \"Change something\", \"Cancel\"]`. End your turn there and wait for the user's reply on the next turn.\n\nWhen the user replies on the next turn:\n\n- If reply is **\"Approve plan\"** → proceed to the execution flow below.\n- If reply is **\"Cancel\"** → say \"No problem!\" and stop.\n- If reply is **\"Change something\"** → ask \"What would you like to change?\" and call `show_quick_choices` with choices `[\"I already have the product code\", \"EC2 only\", \"RDS only\", \"Resources are in a different account\"]`. End your turn. When the user replies, update the plan accordingly and re-ask for approval using the same pattern.\n\n## After \"Approve plan\": Execution Flow\n\nYou MUST complete Step 1 (get product code) before doing anything else. Never skip to EC2/RDS without the product code.\n\n1. Output: `Plan approved! Starting execution...\\n\\nStep 1: Navigating to SaaS products to get the product code...`\n2. Call `get_ui_context` → `extract_page`. Note the current AWS region — you will reuse it for every subsequent `navigate` call.\n3. **Navigate to SaaS products**: `navigate` to `https://aws.amazon.com/marketplace/management/products/saas?region=<region>`.\n4. `extract_page`. If a new tab opened: `list_tabs` → switch → `extract_page`.\n5. Proceed to Step 1.\n\n## Step 1: Get the Product Code\n\nThis step is MANDATORY. Never skip it unless the user already gave you the product code.\n\n1. `extract_page`. The table shows product rows with a radio button and **Product title** column.\n2. If exactly 1 product → `click` the radio button next to it to select it, then `click` the **\"View details\"** button above the table. Do not ask the user.\n3. If multiple products → ask \"Which product?\" and call `show_quick_choices` with choices set to the product titles plus \"All products\". End your turn and wait for the user's reply. When they reply, `click` the radio button for the chosen product, then `click` **\"View details\"**.\n4. After clicking \"View details\" → `list_tabs`. The product detail page may open in a new tab. If so, switch to it.\n5. `extract_page`. Find the **Product Summary** section.\n - **Product ID** (`prod-xxx`) ← WRONG. Never use this.\n - **Product code** (long alphanumeric, 20+ chars, no prefix) ← CORRECT. Use this.\n6. Record the product code.\n7. Output: `Found product code: <code>. Tag will be aws-apn-id = pc:<code>.\\n\\nMoving to EC2...` — this is a status message, NOT an end-of-turn. Do NOT stop after this line. Do NOT wait for the user. Immediately continue with step 8 in the same turn.\n8. **Navigate back to the AWS Console**: `navigate` to `https://<region>.console.aws.amazon.com/console/home?region=<region>`.\n9. `extract_page` to confirm you're on the AWS Console. Then continue directly to Step 2 — do NOT end your turn between Step 1 and Step 2.\n\n## Step 1.5: Switch to Resource Account (if needed)\n\nOnly if the user mentioned resources are in a different account.\n\n1. Say \"Please sign into the AWS account where your resources live.\" and call `show_quick_choices` with choices `[\"I'm signed in\"]`. End your turn and wait for the user's reply.\n2. When the user confirms on the next turn → `extract_page`.\n\n## Step 2: Tag EC2\n\nSkip if user chose RDS only.\n\n1. **Navigate to EC2**: `navigate` to `https://<region>.console.aws.amazon.com/ec2/home?region=<region>#Home:`.\n2. `extract_page` to confirm you are on the EC2 dashboard in the expected region. If a new tab opened: `list_tabs` → switch → `extract_page`.\n3. `click` **Instances** → `extract_page`.\n4. Ask the user which instances to tag (list the instances found in your message) and call `show_quick_choices` with choices set to the instance names plus \"All instances\". End your turn and wait for the user's reply.\n5. If user chose \"All instances\" → tag every instance one by one without asking again. For each instance:\n - `click` instance row → `extract_page`.\n - In the lower detail pane, `click` the **Tags** tab → `extract_page`.\n - If `aws-apn-id` already exists with correct value → skip. Wrong value → replace.\n - `click` **Manage tags** → `extract_page`.\n - `click` **Add new tag**. Never edit existing tags.\n - `fill` Key: `aws-apn-id` → `fill` Value: `pc:<product-code>`.\n - `extract_page` to verify → `click` **Save** → `extract_page`.\n - Output status: \"Tagged [instance name].\" then IMMEDIATELY `click` the next instance. Do NOT stop. Do NOT say \"ready for next\". Do NOT end your turn. Just click the next one.\n - After ALL instances are tagged, output \"All EC2 instances tagged.\"\n6. If user chose specific instances → same as above but only for those instances. Before saving each one, ask \"Ready to save tag on [instance]: aws-apn-id = pc:<code>. Proceed?\" and call `show_quick_choices` with choices `[\"Proceed\", \"Skip\"]`. End your turn and wait for the user's reply.\n\n## Step 3: Tag RDS\n\nSkip if user chose EC2 only.\n\n1. Output: `Moving to RDS...` — this is a status message, NOT an end-of-turn. Do NOT stop here. Immediately continue with step 2 in the same turn.\n2. **Navigate to RDS**: `navigate` to `https://<region>.console.aws.amazon.com/rds/home?region=<region>`.\n3. `extract_page` to confirm you are on the RDS dashboard in the expected region. If a new tab opened: `list_tabs` → switch → `extract_page`.\n4. `click` **Databases** → `extract_page`.\n5. Ask the user which databases to tag (list the databases found in your message) and call `show_quick_choices` with choices set to the DB names plus \"All databases\". End your turn and wait for the user's reply.\n6. If user chose \"All databases\" → tag every database one by one without asking again. For each database:\n - `click` DB identifier → `extract_page` → `click` **Tags** tab → `extract_page`.\n - If `aws-apn-id` already exists with correct value → skip. Wrong value → replace.\n - `click` **Add tags** or **Manage tags** → `extract_page`.\n - `click` **Add tag**. Never edit existing tags.\n - `fill` Key: `aws-apn-id` → `fill` Value: `pc:<product-code>`.\n - `extract_page` to verify → `click` **Save** → `extract_page`.\n - Output status: \"Tagged [db name].\" then IMMEDIATELY `click` the next database. Do NOT stop. Do NOT say \"ready for next\". Do NOT end your turn. Just click the next one.\n - After ALL databases are tagged, output \"All RDS databases tagged.\"\n7. If user chose specific databases → same as above but only for those. Before saving each one, ask \"Ready to save tag on [db]: aws-apn-id = pc:<code>. Proceed?\" and call `show_quick_choices` with choices `[\"Proceed\", \"Skip\"]`. End your turn and wait for the user's reply.\n\n## Report\n\nWhen done, summarize: each resource → `tagged` / `already tagged` / `skipped` / `failed`. For failures: what went wrong + fix suggestion.\n"
}SHA-256: e5b7b8c512de24c40ef8539ec853a61e96fec437e4606addcf3d654962eb32c5