← Google DriveCONTENT HISTORY

Update to Google Drive

Snapshot Oct 10, 2026 · 06:02 UTC · version 0.1.20

WHAT CHANGED · RULE-BASED ANALYSIS

Package or technical metadata updated

Package contents changed in 25 files: .codex-plugin/plugin.json, integrity.json, skills/google-docs/SKILL.md, …. Open the file diff to inspect the edits.

Observed in package metadata. These changes alone do not establish a new customer-facing feature.

Package file

Before

fb76d7ea1eeaf768fd8bd539e6fbd8bd5fb0a911d4bb0b3af3a875c40df9ecb4

After

43da8aa84a90949ef1a2adf412b05b4382c08c154640f1a10efe3f2c0a1cc266

Package file

Before

Not present

After

{"sha256":"11298815d705e00768243e8e60fd1985ce9d953ca8b0b750a6f10ad0ecb93cf2","size":9625}

Package file

Before

8e5c26053d800e2980b74ab82c2ce95db94a17fbb443f8f6e30baeb442f1d464

After

272fb227fb084a0edb435582703c432a0a11d930cb63891424d0cda30f880798

Package file

Before

28178

After

7621

Compare saved observations

Download comparison JSON

Changed files

.codex-plugin/plugin.json →

integrity.json →

skills/google-docs/SKILL.md →

skills/google-docs/agents/openai.yaml →

skills/google-docs/references/reference-citations-and-hyperlinks.md →

skills/google-docs/references/reference-connector-runtime-and-safety.md →

skills/google-docs/references/reference-direct-request-composition.md →

skills/google-docs/references/reference-dropdown-code-mode.md →

skills/google-docs/references/reference-figures-and-image-insertion.md →

skills/google-docs/references/reference-foreground-guard.md →

skills/google-docs/references/reference-headings-and-question-format.md →

skills/google-docs/references/reference-import-docx-to-native-docs.md →

skills/google-docs/references/reference-meeting-notes-direct.md →

skills/google-docs/references/reference-native-create-direct.md →

skills/google-docs/references/reference-pdf-export-visual-qa.md →

skills/google-docs/references/reference-request-shapes-and-write-safety.md →

skills/google-docs/references/reference-response-and-list-format.md →

skills/google-docs/references/reference-section-completeness-and-final-pass.md →

skills/google-docs/references/reference-smart-chips-and-building-blocks.md →

skills/google-docs/references/reference-table-formatting-deep-dive.md →

skills/google-docs/references/reference-template-preservation-and-edit-scope.md →

skills/google-docs/references/reference-trusted-read-wrapper.md →

skills/google-sheets/SKILL.md →

skills/google-sheets/references/reference-import-spreadsheet-to-native-sheets.md →

skills/google-slides/SKILL.md →

skills/google-docs/references/reference-dropdown-code-mode.md

--- before
+++ after
@@ -1,261 +0,0 @@
-# Native Dropdown Code Mode
-
-When to read: the user asks to create a native Google Docs dropdown, replace its ordered options, or set its selected value. Do not read this reference for preservation-only work.
-
-## Contents
-
-1. Capability gate
-2. Pre-write route
-3. Trusted components
-4. Task workspace
-5. Semantic inventory and task contract
-6. One-stage plans
-7. Validation and bridge execution
-8. Multi-stage tasks
-9. Ambiguous outcomes and reconciliation
-10. Final verification and cleanup
-
-## Capability Gate
-
-Exact dropdown mutation requires both authenticated connector capabilities:
-
-- `getDocumentDropdowns`
-- `updateDocumentDropdown`
-
-Discover capabilities before promising an exact dropdown result and before any write. The read capability must return native semantic metadata: document identity, revision, tab, dropdown identity when the provider exposes one, UTF-16 location, ordered options, selected value, and a stable semantic signature. The write capability must support one guarded `create`, `replace_options`, or `set_selected_value` operation and return the updated semantic record plus a post-write revision.
-
-The connector action contract is:
-
-- `get_document_dropdowns`: accepts `document_id` or `document_url`, optional `tab_id`, and an optional bounded structural selector. It returns document identity, revision, and native dropdown records with provider ID when available, tab/segment UTF-16 range, paragraph or table-cell container, ordered options, selected value, provider-supported color/style metadata, display text, and stable semantic signature.
-- `update_document_dropdown`: accepts exact document and tab, `required_revision_id`, idempotency key, and exactly one connector-native operation. Existing mutations prefer `dropdown_id`; when unavailable they require a unique frozen binding locator plus semantic signature. Creation requires an exact location and surrounding anchor signature. Every operation carries expected-before conditions, and the response returns the updated record, outcome class, and post-write revision.
-
-The connector must reject stale revisions, ambiguous anchors, duplicate labels, selected values outside the option set, unsupported provider values, missing dropdown targets, and document/tab mismatch before applying. It must expose one of `applied`, `rejected_before_apply`, `stale_revision`, `ambiguous_anchor`, `rate_limited_before_apply`, `unknown_application_state`, `applied_readback_failed`, or `verification_failed`. Provider integration must also register the two actions in MCP discovery and golden fixtures, Drive source attribution, user-facing activity labels, and Google Workspace write analytics. The plugin-side executor consumes those contracts but cannot manufacture the external connector actions.
-
-If either capability is missing, or readback cannot distinguish a native dropdown from styled text, stop before writing. Preservation-only edits may continue on the direct path. Do not substitute public Docs `batchUpdate`, a private Google RPC, Browser Use, or UI automation. Do not silently flatten the requested dropdown to text.
-
-The `google-docs-cm` skill and its branch are reference material only. Never load, import, invoke, install, route to, or depend on them. This reference and the checked-in files under `google-docs` are the only allowed code-mode implementation.
-
-Serialized `google-docs-v2-dropdown-*` kind values are the established version-1 dropdown protocol identifiers. Retain them for executor compatibility; they do not refer to the V2 skill directory.
-
-## Pre-Write Route
-
-Resolve the route before the first document mutation:
-
-| Intent | Route |
-| --- | --- |
-| No dropdown involvement | Direct connector workflow |
-| Preserve an existing dropdown | Direct workflow plus the preservation manifest |
-| Edit nearby text without touching the dropdown | Direct workflow with ranges split around the control |
-| Create a native dropdown | Checked-in Google Docs dropdown code mode |
-| Replace ordered dropdown options | Checked-in Google Docs dropdown code mode |
-| Change the selected value | Checked-in Google Docs dropdown code mode |
-| Ordinary text or table changes plus any dropdown mutation | Checked-in Google Docs dropdown code mode for the entire task |
-| Plain-text approximation explicitly approved by the user | Direct workflow; identify the output as an approximation |
-| Required connector actions unavailable | Stop before writing |
-
-Use `runtime/dropdown-routing.mjs` for the deterministic decision. Exact mutation requires the established `google_docs_v2_dropdown_code_mode` feature flag and both connector capabilities. The legacy flag name is part of the existing runtime contract and does not refer to the V2 skill directory. A `dropdown-code-mode` decision owns every write in the task. Never alternate direct and code-mode writers in one mutating trajectory.
-
-If a task originally classified as preservation-only later requires dropdown mutation, stop the direct trajectory, reread the live document, rebuild the preservation inventory, and begin a new code-mode trajectory from the current revision. Do not reuse stale indexes or issue a dropdown write after an earlier untracked direct write.
-
-## Trusted Components
-
-Only these checked-in Google Docs components may participate:
-
-- `runtime/dropdown-inventory.mjs`: normalizes authoritative document structure and dropdown metadata.
-- `runtime/dropdown-contract.mjs`: freezes target identity, source denylist, protected surfaces, native dropdown bindings, and opaque controls.
-- `runtime/dropdown-plan.mjs`: validates a single guarded mutating stage.
-- `scripts/build_docs_dropdown_inventory.mjs`: creates the normalized inventory artifact.
-- `scripts/freeze_docs_dropdown_contract.mjs`: creates the frozen task contract.
-- `scripts/validate_docs_dropdown_plan.mjs`: creates the hash-bound validation sidecar.
-- `scripts/create_docs_dropdown_execution_context.mjs`: creates the bridge execution context.
-- `host/docs-dropdown-executor.mjs`: performs preflight, one mutation, and post-write verification.
-- `host/docs-dropdown-file-bridge.mjs`: evaluates only the checked-in executor and persists compact immutable artifacts.
-
-Do not execute model-authored JavaScript, arbitrary helper scripts, embedded private RPCs, nested connector writers, or any code copied from another skill. A model may author JSON plan artifacts only.
-
-The trusted executor resolves only `getDocument`, `getDocumentTables` when needed, `batchUpdateDocument`, `getDocumentDropdowns`, and `updateDocumentDropdown`. Connector adapters may map installed action names to those capability names, but may not broaden the capability set.
-
-## Task Workspace
-
-Create one thread-scoped scratch directory outside user deliverables and keep it untracked. Use restrictive permissions. Keep source snapshots, inventory, contracts, stage plans, validation sidecars, checkpoints, receipts, and manifests there.
-
-Use a new immutable output directory for each stage. Never overwrite a prior stage artifact. Suggested layout:
-
-```text
-<scratch>/google-docs-dropdown/<task-id>/
-  source/
-    document.json
-    dropdowns.json
-  task/
-    inventory.json
-    contract.json
-    execution-context.json
-  stages/
-    001-docs-edit/
-      plan.json
-      validation.json
-      result/
-    002-dropdown-create/
-      plan.json
-      validation.json
-      result/
-```
-
-Keep raw connector payloads and document content out of the model-facing bridge result. The bridge returns only compact status, hashes, artifact paths, counts, and sanitized errors.
-
-## Semantic Inventory And Task Contract
-
-Read the live target with authoritative `get_document` structure and `get_document_dropdowns` metadata from the same revision. Include tables when container coordinates matter. Then build the normalized inventory:
-
-```sh
-node scripts/build_docs_dropdown_inventory.mjs \
-  --document /absolute/task/source/document.json \
-  --dropdowns /absolute/task/source/dropdowns.json \
-  --output /absolute/task/task/inventory.json
-```
-
-Only provider-identified native dropdown records become `dropdownControl` bindings with `fidelityClass: "exact-writable"`. Private-use characters or other unmatched placeholders become `opaqueTemplateControl` bindings with `fidelityClass: "copy-only"`. Never infer that a private-use glyph is a dropdown.
-
-Freeze the task contract before planning a write. The decisions file contains the selected tab, immutable source document IDs, protected tabs, and protected ranges:
-
-```sh
-node scripts/freeze_docs_dropdown_contract.mjs \
-  --inventory /absolute/task/task/inventory.json \
-  --decisions /absolute/task/task/decisions.json \
-  --output /absolute/task/task/contract.json
-```
-
-Every discovered dropdown and opaque control is frozen into the contract, even if the model-authored plan does not mention it. A reusable source template must be copied first, and the source document ID must be placed in `sourceDocumentIds`. The source can never become the target.
-
-## One-Stage Plans
-
-Each plan artifact contains exactly one mutating stage and is bound to one document revision, selected tab, inventory hash, and task contract. Valid stage types are:
-
-- `docs_batch_update`
-- `dropdown_create`
-- `dropdown_replace_options`
-- `dropdown_set_selected`
-
-Use native Google Docs request objects under `stage.call.requests` for `docs_batch_update`. Include `write_control.requiredRevisionId`, an `expectedBefore` object bound to the live revision and frozen binding hash, and an `expectedAfter` object requiring both a revision change and preserved semantic bindings. Broad `replaceAllText`, named-range replacement, and writes intersecting frozen semantic controls are rejected.
-
-Dropdown stages pass connector-native `update_document_dropdown` arguments. Do not invent a generic semantic mutation language. A create operation must include an exact UTF-16 location, tab, surrounding anchor signature, ordered nonempty unique options, selected value when requested, expected-before conditions, revision, and idempotency key. Mutations of existing dropdowns must use the provider dropdown ID when available.
-
-Example stage skeleton:
-
-```json
-{
-  "version": 1,
-  "kind": "google-docs-v2-dropdown-plan",
-  "target": {
-    "documentId": "TARGET_ID",
-    "title": "Target title",
-    "tabId": "t.0",
-    "expectedRevisionId": "REVISION"
-  },
-  "baseSnapshot": {"sha256": "INVENTORY_HASH"},
-  "contract": {
-    "targetBindingsHash": "BINDINGS_HASH",
-    "decisionHash": "DECISION_HASH"
-  },
-  "stage": {
-    "id": "002-dropdown-create",
-    "type": "dropdown_create",
-    "call": {
-      "document_id": "TARGET_ID",
-      "required_revision_id": "REVISION",
-      "idempotency_key": "TASK_AND_STAGE_UNIQUE_KEY",
-      "operation": {
-        "type": "create",
-        "location": {"tabId": "t.0", "segmentId": null, "index": 120},
-        "anchor": {"beforeHash": "HASH", "afterHash": "HASH"},
-        "options": [
-          {"label": "TBD", "color": "GRAY"},
-          {"label": "Ready", "color": "GREEN"}
-        ],
-        "selected_value": "TBD",
-        "expected_before": {"dropdownAbsent": true}
-      }
-    },
-    "expectedAfter": {
-      "options": [
-        {"label": "TBD", "color": "GRAY"},
-        {"label": "Ready", "color": "GREEN"}
-      ],
-      "selectedValue": "TBD"
-    }
-  }
-}
-```
-
-The expected-after state must fully describe the requested dropdown semantics. The selected value must belong to the desired option set. Labels must be nonempty and unique, and option order is significant.
-
-## Validation And Bridge Execution
-
-Create the execution context and validate the plan before connector access:
-
-```sh
-node scripts/create_docs_dropdown_execution_context.mjs \
-  --workspace-root /absolute/task \
-  --target-document-id TARGET_ID \
-  --executor /absolute/repo/plugins/google-drive/skills/google-docs/host/docs-dropdown-executor.mjs \
-  --output /absolute/task/task/execution-context.json
-
-node scripts/validate_docs_dropdown_plan.mjs \
-  --plan /absolute/task/stages/002-dropdown-create/plan.json \
-  --inventory /absolute/task/task/inventory.json \
-  --contract /absolute/task/task/contract.json \
-  --executor /absolute/repo/plugins/google-drive/skills/google-docs/host/docs-dropdown-executor.mjs \
-  --output /absolute/task/stages/002-dropdown-create/validation.json
-```
-
-The validation sidecar binds the exact plan, inventory, contract, and trusted executor hashes. Invoke `executeDocsDropdownPlanFromFiles` from the checked-in file bridge with absolute paths, the mounted authenticated connector tools, and a new result directory. The bridge rejects executable plan files, path traversal, changed hashes, an existing result directory, target mismatch, and an untrusted executor path.
-
-The executor then:
-
-1. rereads live document and dropdown state
-2. verifies document, title, tab, revision, source denylist, and every frozen semantic binding
-3. independently validates the stage scope
-4. dispatches exactly one guarded mutation
-5. rereads document structure and dropdown metadata
-6. proves the revision changed, expected dropdown state holds, and surrounding frozen structures were preserved
-7. returns a sanitized receipt
-
-Never report success from the mutation response alone.
-
-## Multi-Stage Tasks
-
-For ordinary Docs edits plus dropdown mutation, select code mode before the first write and use it for all stages:
-
-1. Freeze one task-level preservation intent from the first live revision.
-2. Materialize and execute one `docs_batch_update` stage.
-3. Reread document structure and dropdown metadata.
-4. Rebuild the inventory and re-freeze the contract against the new revision while retaining source denylist and preservation decisions.
-5. Materialize and execute one dropdown stage.
-6. Reread and rebase again before every additional dropdown.
-7. Perform final whole-task verification.
-
-Never precompute later indexes, revisions, or anchors. One dropdown operation is allowed per connector call and per plan artifact.
-
-## Ambiguous Outcomes And Reconciliation
-
-Do not automatically retry a mutation that returns `unknown_application_state`. Retrying may create a duplicate dropdown or repeat a selection/options change.
-
-Use read-only reconciliation through `reconcileUnknownDropdownMutation` in the trusted executor. Reconciliation must use the same document ID, tab, idempotency key, dropdown ID or creation anchor, and expected-after state. Continue only when authoritative readback proves either:
-
-- the original operation applied exactly once and matches the expected state; or
-- the original operation did not apply and a fresh, newly validated stage may be attempted.
-
-If readback remains ambiguous, stop and report the unknown state. Treat `stale_revision` by rereading, rebuilding the inventory, refreezing the contract, and revalidating. Treat `applied_readback_failed` as potentially applied; reconcile rather than retry. Treat `verification_failed` as a failed task even if the connector returned success.
-
-## Final Verification And Cleanup
-
-Final verification must classify every relevant control:
-
-- `connector-proven native dropdown`: authoritative metadata confirms ordered options, selected value, identity, and tab after mutation.
-- `copy-preserved opaque control`: a copy or preservation manifest proves its opaque signature and surrounding structure remained unchanged; semantics are not claimed.
-- `user-approved text approximation`: the user explicitly accepted a non-native substitute.
-- `unverified`: required semantic metadata or readback was unavailable.
-
-Verify source templates and source tabs remain unchanged, all unrelated dropdowns and opaque controls retain their frozen signatures, ordinary text/table changes match their declared scope, and no full-document rebuild occurred.
-
-After successful handoff, remove thread-scoped raw snapshots and connector payloads unless retention is required for debugging. Retain only the compact receipt/manifest needed by the surrounding execution environment. Never log document text, option labels, people, signed URLs, or raw connector payloads in analytics.
Full technical diff · 34 changed fields

changed /files/.codex-plugin~1plugin.json/sha256

BEFORE
"fb76d7ea1eeaf768fd8bd539e6fbd8bd5fb0a911d4bb0b3af3a875c40df9ecb4"
AFTER
"43da8aa84a90949ef1a2adf412b05b4382c08c154640f1a10efe3f2c0a1cc266"

added /files/integrity.json

BEFORE
Field was absent
AFTER
{
  "sha256": "11298815d705e00768243e8e60fd1985ce9d953ca8b0b750a6f10ad0ecb93cf2",
  "size": 9625
}

changed /files/skills~1google-docs~1SKILL.md/sha256

BEFORE
"8e5c26053d800e2980b74ab82c2ce95db94a17fbb443f8f6e30baeb442f1d464"
AFTER
"272fb227fb084a0edb435582703c432a0a11d930cb63891424d0cda30f880798"

changed /files/skills~1google-docs~1SKILL.md/size

BEFORE
28178
AFTER
7621

changed /files/skills~1google-docs~1agents~1openai.yaml/sha256

BEFORE
"83ace90f66faceb0f66152b3f906b8f7b9b9a657093c39c4a28d3dca5ddcc25a"
AFTER
"07a3096d020b624d1246d411e6d81cc4686a77e8cb4f486d9b43c13bf4261f17"

changed /files/skills~1google-docs~1agents~1openai.yaml/size

BEFORE
415
AFTER
337

removed /files/skills~1google-docs~1references~1reference-citations-and-hyperlinks.md

BEFORE
{
  "sha256": "176945bec5f7b5875e3d096ed2a71947b4fc51779b65cb6018337e813c25b6af",
  "size": 4845
}
AFTER
Field is absent

removed /files/skills~1google-docs~1references~1reference-connector-runtime-and-safety.md

BEFORE
{
  "sha256": "c77ab1262be6f74edc6c521a5079de422566c9ce4d776957ea04e820c30d414a",
  "size": 9003
}
AFTER
Field is absent

changed /files/skills~1google-docs~1references~1reference-direct-request-composition.md/sha256

BEFORE
"f4a5b9fe0be81930c982f9fa28d6cb6ed0c421d116cdd42da52f3586a339d2f8"
AFTER
"d9441e3eeb2ab8f15f8b964952178a780f778389dedfe784100dec410e011d08"

changed /files/skills~1google-docs~1references~1reference-direct-request-composition.md/size

BEFORE
9329
AFTER
10992

removed /files/skills~1google-docs~1references~1reference-dropdown-code-mode.md

BEFORE
{
  "sha256": "a5ceb032e30d966a62c34a7ee0a00f96ae2f3243e6fd11eb281794dfaa1c0397",
  "size": 16088
}
AFTER
Field is absent

removed /files/skills~1google-docs~1references~1reference-figures-and-image-insertion.md

BEFORE
{
  "sha256": "079525400ca9a709dc78ca32edbec73ca50c1aa1858ac62082fdbd7fd1f4c3fc",
  "size": 3443
}
AFTER
Field is absent

removed /files/skills~1google-docs~1references~1reference-foreground-guard.md

BEFORE
{
  "sha256": "29311ede3744c97db5ca87ec36b991a12e785dde84d8dbdcbdc9b983cf9d614c",
  "size": 2538
}
AFTER
Field is absent

removed /files/skills~1google-docs~1references~1reference-headings-and-question-format.md

BEFORE
{
  "sha256": "970f1ca6c30e7db8cbb7afb74e7515ad79a12dfc5fc5acd18ad673dca8941ab7",
  "size": 5492
}
AFTER
Field is absent

removed /files/skills~1google-docs~1references~1reference-import-docx-to-native-docs.md

BEFORE
{
  "sha256": "75d396905976cbc38c162317d29ad76b4e1ca88a0695b993002beaf9a0553274",
  "size": 6672
}
AFTER
Field is absent

changed /files/skills~1google-docs~1references~1reference-meeting-notes-direct.md/sha256

BEFORE
"aafb77df09868005862ea81af6734c8a6e28d25c92deba77fe524b3f0b656384"
AFTER
"070af740894dcda59b8a7cc1849689df416ea92f255ab30bff3ff0a52948e9e9"

changed /files/skills~1google-docs~1references~1reference-meeting-notes-direct.md/size

BEFORE
9261
AFTER
5187

removed /files/skills~1google-docs~1references~1reference-native-create-direct.md

BEFORE
{
  "sha256": "458f26ffc83cd168c2e38fd3216d47dcf817018596d69e7af80ba37efc7c4068",
  "size": 4820
}
AFTER
Field is absent

removed /files/skills~1google-docs~1references~1reference-pdf-export-visual-qa.md

BEFORE
{
  "sha256": "29bf6c64e1cd15ad0ea16d7d20297e0eed9d522575e5b3cf5d4a7f1fe507144c",
  "size": 4098
}
AFTER
Field is absent

removed /files/skills~1google-docs~1references~1reference-request-shapes-and-write-safety.md

BEFORE
{
  "sha256": "f31053a6bdb33fa43aa718785c9ee7bfe33cd3bdd647ef8007bc4da75c53b712",
  "size": 14808
}
AFTER
Field is absent

removed /files/skills~1google-docs~1references~1reference-response-and-list-format.md

BEFORE
{
  "sha256": "d3696ea316bd2cf90ec32060a1f5f00f26d2420aacb91b91654d0552bf2cd723",
  "size": 2648
}
AFTER
Field is absent

removed /files/skills~1google-docs~1references~1reference-section-completeness-and-final-pass.md

BEFORE
{
  "sha256": "9629e4e744e51b355d9f3ea738d66831b9c4de2b690ca621ef0ee118c6f6bcfc",
  "size": 9240
}
AFTER
Field is absent

changed /files/skills~1google-docs~1references~1reference-smart-chips-and-building-blocks.md/sha256

BEFORE
"fb8e3d1fde87432b15010b37fa9e79c954c49bcd2acd597121ef242f425447d8"
AFTER
"7ba1adef1071e43c02d049d9e06cf08a05be75edc3e0edf27e95d9949d79d425"

changed /files/skills~1google-docs~1references~1reference-smart-chips-and-building-blocks.md/size

BEFORE
10880
AFTER
6575

removed /files/skills~1google-docs~1references~1reference-table-formatting-deep-dive.md

BEFORE
{
  "sha256": "e810853ad7310704b3ba47ec2ad82e90091247ccc0edc41c67f2a2c9530d24be",
  "size": 15176
}
AFTER
Field is absent

removed /files/skills~1google-docs~1references~1reference-template-preservation-and-edit-scope.md

BEFORE
{
  "sha256": "87552b6699db28a47a2fef5c00bf4d26a99fa7676d6f1dfdd9799653f4605c66",
  "size": 15244
}
AFTER
Field is absent

changed /files/skills~1google-docs~1references~1reference-trusted-read-wrapper.md/sha256

BEFORE
"5908da48d2b09619c3741f11bcca35ba061ee48055fcc2349ffd423059939c6b"
AFTER
"defdd8ac40e32c11c5aa65471cd7ae4078721076b1815a51078a027c7df53b04"

changed /files/skills~1google-docs~1references~1reference-trusted-read-wrapper.md/size

BEFORE
7330
AFTER
4901

changed /files/skills~1google-sheets~1SKILL.md/sha256

BEFORE
"54d160c27532e4ff610e9c5a7870fb80dc496b2d1d3f302996c21c505419c862"
AFTER
"1851109d8f2c182236d28db136fb161d30c85287e5bc4fa79cf137673184c58d"

changed /files/skills~1google-sheets~1SKILL.md/size

BEFORE
9073
AFTER
9420

changed /files/skills~1google-sheets~1references~1reference-import-spreadsheet-to-native-sheets.md/sha256

BEFORE
"8cbe578b2fa55f1276b16c4bcc343928d9afd3dfc6934e6a02fe9cb4a35c61ed"
AFTER
"c0f78aad392819aff85a389cb04e4f560c54bdc4da249e0bd2cbf24df166f0fd"

changed /files/skills~1google-sheets~1references~1reference-import-spreadsheet-to-native-sheets.md/size

BEFORE
4475
AFTER
4563

changed /files/skills~1google-slides~1SKILL.md/sha256

BEFORE
"fd14974d7c4ea9ff134bcc21cd32b2b1d61eeaa77c6dc757075b07eef6bedbdb"
AFTER
"f85bd1d7080becf8c043a3646b6c3a53fbcd6d2a77c62a15112b8d89e01a4b83"

changed /files/skills~1google-slides~1SKILL.md/size

BEFORE
15364
AFTER
15959
Full snapshot data
{
  "files": {
    ".app.json": {
      "sha256": "e0a8f821b1fb1c38afadaff1458690c7944e10ec138c443d3acc64a8155228ea",
      "size": 105
    },
    ".codex-plugin/plugin.json": {
      "sha256": "43da8aa84a90949ef1a2adf412b05b4382c08c154640f1a10efe3f2c0a1cc266",
      "size": 1818
    },
    "OWNERS": {
      "sha256": "88655f927c72c296290f5ace9a09aa8e1f2b6021531b1b75d6f48667a971b7e8",
      "size": 40
    },
    "assets/google-drive.svg": {
      "sha256": "5b31886b56b95450f7b9763d9b2fef49cb6076d52b69d35ccad48f454bc03021",
      "size": 1460
    },
    "assets/logo.png": {
      "sha256": "585b2c8a695f8167559e9177e6aa9a73b0347a238e21b82df0f669b819670c6c",
      "size": 56020
    },
    "integrity.json": {
      "sha256": "11298815d705e00768243e8e60fd1985ce9d953ca8b0b750a6f10ad0ecb93cf2",
      "size": 9625
    },
    "skills/google-docs/SKILL.md": {
      "sha256": "272fb227fb084a0edb435582703c432a0a11d930cb63891424d0cda30f880798",
      "size": 7621
    },
    "skills/google-docs/agents/openai.yaml": {
      "sha256": "07a3096d020b624d1246d411e6d81cc4686a77e8cb4f486d9b43c13bf4261f17",
      "size": 337
    },
    "skills/google-docs/assets/google-docs-small.svg": {
      "sha256": "2a61baaef537798f02530bed0c41dc0b6fbf964134563f2811d1e0c6dec8304c",
      "size": 2135
    },
    "skills/google-docs/assets/google-docs.png": {
      "sha256": "b416735b10fb7bc27fe80f72007ef957486d7c29ae603083e137ca689d6920d5",
      "size": 65371
    },
    "skills/google-docs/host/docs-dropdown-executor.mjs": {
      "sha256": "97f002cca96055fc8ec5f1c032a89a2966ba2a0f96ca51567cf450ca66163b4a",
      "size": 33451
    },
    "skills/google-docs/host/docs-dropdown-file-bridge.mjs": {
      "sha256": "47cd11ae7872bf7cda18cd5e78e7229ba6485045585838c93b9265117f38b878",
      "size": 9402
    },
    "skills/google-docs/host/docs-stdin-receiver.pl": {
      "sha256": "a31a4a530ad61538385ce28d87d2be5c44810095df4de1ac6eed84628c492dd4",
      "size": 3091
    },
    "skills/google-docs/host/docs-trusted-read-file-bridge.mjs": {
      "sha256": "8ee2b99c05d1adcdd4a4ab71c4f904dbf4bead9cd1c4daab2dd2644b37c3fbd4",
      "size": 23014
    },
    "skills/google-docs/host/docs-trusted-read-wrapper.mjs": {
      "sha256": "c7c1affe5fd3e37924f005c27aa0d6ffbc10e1d2d7ca8fb55d8f38f288ca2ead",
      "size": 16458
    },
    "skills/google-docs/references/reference-direct-request-composition.md": {
      "sha256": "d9441e3eeb2ab8f15f8b964952178a780f778389dedfe784100dec410e011d08",
      "size": 10992
    },
    "skills/google-docs/references/reference-meeting-notes-direct.md": {
      "sha256": "070af740894dcda59b8a7cc1849689df416ea92f255ab30bff3ff0a52948e9e9",
      "size": 5187
    },
    "skills/google-docs/references/reference-smart-chips-and-building-blocks.md": {
      "sha256": "7ba1adef1071e43c02d049d9e06cf08a05be75edc3e0edf27e95d9949d79d425",
      "size": 6575
    },
    "skills/google-docs/references/reference-trusted-read-wrapper.md": {
      "sha256": "defdd8ac40e32c11c5aa65471cd7ae4078721076b1815a51078a027c7df53b04",
      "size": 4901
    },
    "skills/google-docs/runtime/docs-read-normalizer.mjs": {
      "sha256": "324de06dedc0476c91f7f3d2fe4b15c4cb992ace2afb9e57df498a994020878a",
      "size": 10783
    },
    "skills/google-docs/runtime/dropdown-common.mjs": {
      "sha256": "f845319bd56c8bf07f74cc62cfdf10421d58464f0effccf8a720319b091cfba7",
      "size": 3337
    },
    "skills/google-docs/runtime/dropdown-contract.mjs": {
      "sha256": "2894e9b9ea6304be097e0f8c67e96e7e9bd9a7181c38b95dabd6056cb8197536",
      "size": 4008
    },
    "skills/google-docs/runtime/dropdown-inventory.mjs": {
      "sha256": "5d4229fc4e37c21921a9e749c07239a9dab36e00c4f6b57baaa8466af4130043",
      "size": 10565
    },
    "skills/google-docs/runtime/dropdown-plan.mjs": {
      "sha256": "92d39533dd1c908699b5db941f170543bcfccaa8eb8ced7a5d5d332a6d8f8939",
      "size": 14701
    },
    "skills/google-docs/runtime/dropdown-routing.mjs": {
      "sha256": "2f1ca983fa3a8e21312e4fcad392c8dabd443d3720706fac8239e3dab0b4f8dc",
      "size": 2037
    },
    "skills/google-docs/scripts/build_docs_dropdown_inventory.mjs": {
      "sha256": "f7e08ad9aa36373043ff1b36fb81e1721b922b0ca6b44a9cb5ee5287535279e1",
      "size": 805
    },
    "skills/google-docs/scripts/canonicalize_google_workspace_url.mjs": {
      "sha256": "e439d12ad25f60049c15d8bbfabb9e29fa6b3233c42e653006049127414c2521",
      "size": 3055
    },
    "skills/google-docs/scripts/create_docs_dropdown_execution_context.mjs": {
      "sha256": "cf8c99d6d2d40409ab36ccebbcc7c54a010178d7bf41e12f52cc12cc96f99ed5",
      "size": 740
    },
    "skills/google-docs/scripts/freeze_docs_dropdown_contract.mjs": {
      "sha256": "bb0fe83d265f2db2eb47302514eebb7fca1b844d4be247e63640ffda6dd6e154",
      "size": 653
    },
    "skills/google-docs/scripts/validate_docs_dropdown_plan.mjs": {
      "sha256": "1ab562784f52c3aefec0858b5134e5efa0ec7b79b129b9e338576c068e6afdaa",
      "size": 1152
    },
    "skills/google-drive-comments/SKILL.md": {
      "sha256": "a3077375a8f7558b9e052c98047747b8a4a1a90a9a90b552009c28fcdadfe94a",
      "size": 4315
    },
    "skills/google-drive-comments/agents/openai.yaml": {
      "sha256": "bda6a87d79d64d386334a79d4dc93963fd8053c2c8af7c8632c16a1df6db295c",
      "size": 275
    },
    "skills/google-drive/SKILL.md": {
      "sha256": "dabae8a192c861b76cf7b5742bdf14f8ed35e67d8e6cacfd5f746ffbefd6da5c",
      "size": 8383
    },
    "skills/google-drive/agents/openai.yaml": {
      "sha256": "c78a0cff8b8127845b3626ad2fe285ba2333268c5252b124eb3e2ddaa22ba2fb",
      "size": 528
    },
    "skills/google-drive/assets/app-icon.png": {
      "sha256": "a0da54a5f966e876668ab59d8df987ddad1328846216578356e6c10b07791f6c",
      "size": 58200
    },
    "skills/google-drive/assets/google-drive-small.svg": {
      "sha256": "5b31886b56b95450f7b9763d9b2fef49cb6076d52b69d35ccad48f454bc03021",
      "size": 1460
    },
    "skills/google-drive/assets/google-drive.png": {
      "sha256": "a0da54a5f966e876668ab59d8df987ddad1328846216578356e6c10b07791f6c",
      "size": 58200
    },
    "skills/google-drive/assets/google-drive.svg": {
      "sha256": "5b31886b56b95450f7b9763d9b2fef49cb6076d52b69d35ccad48f454bc03021",
      "size": 1460
    },
    "skills/google-drive/references/slides/chart-refresh-workflows.md": {
      "sha256": "0ddbd940cfbd379bef232fc01e628ef02a3b7c2182e7d6983d281199b651f600",
      "size": 5313
    },
    "skills/google-drive/references/slides/deck-scope-verification.md": {
      "sha256": "7fa958f5dd4e7575857c5e1ff8761646f650694a3bc3cc8ed302943332452c3d",
      "size": 1713
    },
    "skills/google-drive/references/slides/sheets-chart-replacement.md": {
      "sha256": "601d323942d4a944d8ec84cb8be149ec1d1865ab33ede91bf25d3ca6da3a978a",
      "size": 3552
    },
    "skills/google-drive/references/slides/visual-change-loop.md": {
      "sha256": "6ab9b64580fe2dcc9def5535de9f549a4728eae26d447fb1d7ba479d04bd25eb",
      "size": 6105
    },
    "skills/google-sheets/SKILL.md": {
      "sha256": "1851109d8f2c182236d28db136fb161d30c85287e5bc4fa79cf137673184c58d",
      "size": 9420
    },
    "skills/google-sheets/agents/openai.yaml": {
      "sha256": "4d55928fc0f63aae133f8c00219e3fd7dfdd3a49ef457ceec6bcf0f014ffae00",
      "size": 366
    },
    "skills/google-sheets/assets/google-sheets-small.svg": {
      "sha256": "502b9fcfb51a6345d03db408b36be40676ee1483a4efa24a2751ad65128c4945",
      "size": 1591
    },
    "skills/google-sheets/assets/google-sheets.png": {
      "sha256": "e3775513bef981e135ed001ee82be2381e04c6361093628628360b565635e4fe",
      "size": 74354
    },
    "skills/google-sheets/references/reference-batch-update-recipes.md": {
      "sha256": "18e645b4f05f4f399ceff0c2ee62501a38609709b087e7140457eef2c60c8e9e",
      "size": 17412
    },
    "skills/google-sheets/references/reference-chart-recipes.md": {
      "sha256": "f8428db55e2cddee66bf1bf7ced1cbeff75b06893f1477bf175af56bb2026eac",
      "size": 13042
    },
    "skills/google-sheets/references/reference-edit-workflow.md": {
      "sha256": "66c6845a16547d65ac3eaf2ae8b7762fb534f2acfb5700716827b21cff9b149a",
      "size": 2707
    },
    "skills/google-sheets/references/reference-formula-patterns.md": {
      "sha256": "749791a220c1e1ab18f99c0f0be56de106e9e4701d28b82385b673c8f9d1cc56",
      "size": 4934
    },
    "skills/google-sheets/references/reference-import-spreadsheet-to-native-sheets.md": {
      "sha256": "c0f78aad392819aff85a389cb04e4f560c54bdc4da249e0bd2cbf24df166f0fd",
      "size": 4563
    },
    "skills/google-sheets/references/reference-live-read-search-safety.md": {
      "sha256": "bd13045e10fd7f8cb5389512ead5dc3482aa04ba328cd95da87a9a09d0b3c981",
      "size": 2376
    },
    "skills/google-sheets/references/reference-native-cell-structure.md": {
      "sha256": "989e30e41ec064712b45966dd88aea8613631653fa981559038d4e0549338e47",
      "size": 4754
    },
    "skills/google-sheets/references/reference-visual-quality.md": {
      "sha256": "869601926708d005d8a9ce7e2ebac859bd31d54d42150b0b8d6f1f2d01b93129",
      "size": 1797
    },
    "skills/google-sheets/references/style-profiles.md": {
      "sha256": "a3afa692e57bb2bcd91aa3ea540147fc0789ce576215d587b2ee55df30e32c65",
      "size": 1427
    },
    "skills/google-slides/SKILL.md": {
      "sha256": "f85bd1d7080becf8c043a3646b6c3a53fbcd6d2a77c62a15112b8d89e01a4b83",
      "size": 15959
    },
    "skills/google-slides/agents/openai.yaml": {
      "sha256": "c93b66486cc6df212d2eb3fabb57a3495eba07e3ae900612c3c72a1cb2315605",
      "size": 417
    },
    "skills/google-slides/assets/google-slides-small.svg": {
      "sha256": "702cb4708c85d38833f075bfbd2870e5cf07f934b2a06124e57a00eafe68b486",
      "size": 2813
    },
    "skills/google-slides/assets/google-slides.png": {
      "sha256": "b9e27de164f75478c181d2f2804b259f96bcd2d28b8af4328f94ab20dd0cd71d",
      "size": 81642
    },
    "skills/google-slides/host/export-and-render-slides.mjs": {
      "sha256": "43d2436482267426bd48ec20e11787b7c2f84e72adde26e2fee2d1a121aecec4",
      "size": 23966
    },
    "skills/google-slides/host/export-and-render-slides.test.mjs": {
      "sha256": "6bc4c07cde3183bd40495a1d985862b432f3e5c1f110d2b309ea803096034ce8",
      "size": 15727
    },
    "skills/google-slides/host/read-template-to-file.mjs": {
      "sha256": "bdeb61186088aab091f2f8c5330449a6aa5e9e3a1e1abbfc0cf132dfc8b27484",
      "size": 8608
    },
    "skills/google-slides/host/slides-stdin-receiver.pl": {
      "sha256": "95d9f2fffd6b1eb02292f574370f6424df8daa45969ad1b5f0e617679e39159f",
      "size": 3109
    },
    "skills/google-slides/runtime/common.mjs": {
      "sha256": "da0497e25983d4cea67f0f588f213d9f587c7f6a865dee28e9d24a7e76b7733e",
      "size": 5790
    },
    "skills/google-slides/runtime/design-system.mjs": {
      "sha256": "4e393f1486c2e7209fc833fdd2fca4a2094ab3b0ff4e5ce20a83612b441cf0fb",
      "size": 22909
    },
    "skills/google-slides/runtime/media-geometry.mjs": {
      "sha256": "4d0930a9d2bec3ed29f10a19c430a319dc450bc087c96dbb47239cd5171666b6",
      "size": 10062
    },
    "skills/google-slides/runtime/normalize.mjs": {
      "sha256": "3b7f5267f61335410b5aeccca75271b7a810e4306ef9edc5e28a3b7be2d0d8fa",
      "size": 14653
    },
    "skills/google-slides/runtime/output-issues.mjs": {
      "sha256": "45f8a2f8c70c5356b050ba84c1c0a7e3d4b7b421db3929c99af73037d6d3198d",
      "size": 12513
    },
    "skills/google-slides/runtime/result.mjs": {
      "sha256": "1c516fac28909b0c5f98b07a2cd9378885e9838182a9a0b907b5188c8324eb7e",
      "size": 2129
    },
    "skills/google-slides/scripts/check_output_issues.mjs": {
      "sha256": "095179a53e10edaaeb1381e7a4a24c1b461c1c61e245b9e707881c8de6a85b9c",
      "size": 2251
    },
    "skills/google-slides/scripts/parse_template_design_system.mjs": {
      "sha256": "5985a2fba34d769e7839a90fba7745b070d82773b8da4a2e1a77213c70e4c914",
      "size": 2574
    }
  }
}

SHA-256 of public snapshot: 69539408ca6ecea38d2d79b8de19964212659149e32ebb8fd467d481e573a2f5