Domain: drive

System prompt:
You are a helpful Drive assistant with access to all available tools. Operate in a safe and fully authorized environment—you do not need to ask for confirmation or permission before taking action. When identifiers such as names or IDs are missing, perform exactly one lookup per entity type, verify that you are reusing correct values from previous responses, and proceed using the retrieved data. Never assume or fabricate IDs, responses, or outcomes—rely solely on verified API results. Complete each task in a single, logical, and efficient execution flow. For any tool that supports the 'supportsAllDrives' key, you must include it in the tool request body and set its value to true. A user must have the right privilege to carry out a change on any resource.

Task:
Sarah Johnson needs to transition the marketing campaign from Q1 to Q2. This involves archiving the 'Marketing Presentation' for compliance by creating an 'Archived Marketing Campaigns' folder, moving the presentation file into this archive folder, marking the current revision as permanently retained, and adding archival metadata including archive_status(archived) and archived_date(2025-11-25). A new working copy, 'Marketing Presentation - Q2 Planning.pptx', is needed for the Q2 work. The 'Marketing Team' group ('marketing@company.com') requires writer access to this new file, and its description should be updated to 'Q2 2025 Marketing planning document. Please add all new proposals here.'. To finalize the Q1 presentation, a reply to the existing feedback comment with 'Thanks for the suggestion! The case studies have been added to slides 10-12 as recommended.' is required, along with a completion comment stating 'Q1 campaign archive finalized. Q2 planning copy created. Team access updated for new phase.'.

Available tools:
update_files
list_comments
copy_files
create_replies
list_revisions
create_file
update_revisions
create_permission
list_files
create_comments

Verification checks:
[{"verifier_type": "database_state", "name": "Presentation Archive Properties Set", "description": "Presentation Archive Properties Set", "gym_name": "gym-google-drive-mcp", "validation_config": {"query": "WITH archived_file AS (\n  SELECT\n    id,\n    name,\n    app_properties\n  FROM files\n  WHERE id = '01JBQM3K8TGHZX9RNVQM5Y2P8S'\n)\nSELECT COUNT(*) AS cnt\nFROM archived_file\nWHERE json_extract(app_properties, '$.archive_status') = 'archived'\n  AND json_extract(app_properties, '$.archived_date') = '2025-11-25';", "expected_value": 1, "comparison_type": "equals"}}, {"verifier_type": "database_state", "name": "Current Revision Marked for Permanent Retention", "description": "Current Revision Marked for Permanent Retention", "gym_name": "gym-google-drive-mcp", "validation_config": {"query": "WITH permanent_revision AS (\n  SELECT\n    id,\n    file_id,\n    revision_number,\n    keep_forever,\n    modified_time\n  FROM revisions\n  WHERE file_id = '01JBQM3K8TGHZX9RNVQM5Y2P8S'\n    AND id = '01JBQM3K8TGHZX9RNVQM5Y2P9B'\n)\nSELECT COUNT(*) AS cnt\nFROM permanent_revision\nWHERE keep_forever = 1;", "expected_value": 1, "comparison_type": "equals"}}, {"verifier_type": "database_state", "name": "Presentation Moved to Archive Folder", "description": "Presentation Moved to Archive Folder", "gym_name": "gym-google-drive-mcp", "validation_config": {"query": "WITH archive_folder AS (\n  SELECT id\n  FROM files\n  WHERE name = 'Archived Marketing Campaigns'\n    AND mime_type = 'application/vnd.google-apps.folder'\n    AND trashed = 0\n)\nSELECT COUNT(*) AS cnt\nFROM files f\nCROSS JOIN archive_folder af\nWHERE f.id = '01JBQM3K8TGHZX9RNVQM5Y2P8S'\n  AND (f.parent_id LIKE '%' || af.id || '%');", "expected_value": 1, "comparison_type": "equals"}}, {"verifier_type": "database_state", "name": "Q2 Planning Copy Created and Described", "description": "Q2 Planning Copy Created and Described", "gym_name": "gym-google-drive-mcp", "validation_config": {"query": "WITH q2_copy AS (\n  SELECT\n    id,\n    name,\n    description,\n    trashed\n  FROM files\n  WHERE name = 'Marketing Presentation - Q2 Planning.pptx'\n    AND trashed = 0\n)\nSELECT COUNT(*) AS cnt\nFROM q2_copy\nWHERE description = 'Q2 2025 Marketing planning document. Please add all new proposals here.';", "expected_value": 1, "comparison_type": "equals"}}, {"verifier_type": "database_state", "name": "Marketing Team Permission and Comments Created", "description": "Marketing Team Permission and Comments Created", "gym_name": "gym-google-drive-mcp", "validation_config": {"query": "WITH marketing_team_permission AS (\n  SELECT 1\n  FROM permissions p\n  INNER JOIN groups g ON g.id = p.group_id\n  WHERE p.file_id = (SELECT id FROM files WHERE name = 'Marketing Presentation - Q2 Planning.pptx' AND trashed = 0)\n    AND g.name = 'Marketing Team'\n    AND p.role = 'writer'\n    AND p.deleted = 0\n),\nfeedback_reply AS (\n  SELECT 1\n  FROM replies\n  WHERE comment_id = '01JBQM3K8TGHZX9RNVQM5Y2P97'\n    AND deleted = 0\n    AND LOWER(content) LIKE '%case studies%'\n    AND LOWER(content) LIKE '%slides 10-12%'\n),\ncompletion_comment AS (\n  SELECT 1\n  FROM comments\n  WHERE file_id = '01JBQM3K8TGHZX9RNVQM5Y2P8S'\n    AND deleted = 0\n    AND LOWER(content) LIKE '%q1 campaign archive finalized%'\n    AND LOWER(content) LIKE '%q2 planning copy created%'\n)\nSELECT\n  CASE\n    WHEN (SELECT COUNT(*) FROM marketing_team_permission) = 1\n     AND (SELECT COUNT(*) FROM feedback_reply) = 1\n     AND (SELECT COUNT(*) FROM completion_comment) = 1\n    THEN 1\n    ELSE 0\n  END AS cnt;", "expected_value": 1, "comparison_type": "equals"}}]