Update to Google Drive
Snapshot Oct 10, 2026 · 06:02 UTC · version 0.1.20
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
fb76d7ea1eeaf768fd8bd539e6fbd8bd5fb0a911d4bb0b3af3a875c40df9ecb4
43da8aa84a90949ef1a2adf412b05b4382c08c154640f1a10efe3f2c0a1cc266
Package file
Not present
{"sha256":"11298815d705e00768243e8e60fd1985ce9d953ca8b0b750a6f10ad0ecb93cf2","size":9625}
Package file
8e5c26053d800e2980b74ab82c2ce95db94a17fbb443f8f6e30baeb442f1d464
272fb227fb084a0edb435582703c432a0a11d930cb63891424d0cda30f880798
Package file
28178
7621
Compare saved observations
Download comparison JSONChanged files
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-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
"fb76d7ea1eeaf768fd8bd539e6fbd8bd5fb0a911d4bb0b3af3a875c40df9ecb4"
"43da8aa84a90949ef1a2adf412b05b4382c08c154640f1a10efe3f2c0a1cc266"
added /files/integrity.json
Field was absent
{
"sha256": "11298815d705e00768243e8e60fd1985ce9d953ca8b0b750a6f10ad0ecb93cf2",
"size": 9625
}changed /files/skills~1google-docs~1SKILL.md/sha256
"8e5c26053d800e2980b74ab82c2ce95db94a17fbb443f8f6e30baeb442f1d464"
"272fb227fb084a0edb435582703c432a0a11d930cb63891424d0cda30f880798"
changed /files/skills~1google-docs~1SKILL.md/size
28178
7621
changed /files/skills~1google-docs~1agents~1openai.yaml/sha256
"83ace90f66faceb0f66152b3f906b8f7b9b9a657093c39c4a28d3dca5ddcc25a"
"07a3096d020b624d1246d411e6d81cc4686a77e8cb4f486d9b43c13bf4261f17"
changed /files/skills~1google-docs~1agents~1openai.yaml/size
415
337
removed /files/skills~1google-docs~1references~1reference-citations-and-hyperlinks.md
{
"sha256": "176945bec5f7b5875e3d096ed2a71947b4fc51779b65cb6018337e813c25b6af",
"size": 4845
}Field is absent
removed /files/skills~1google-docs~1references~1reference-connector-runtime-and-safety.md
{
"sha256": "c77ab1262be6f74edc6c521a5079de422566c9ce4d776957ea04e820c30d414a",
"size": 9003
}Field is absent
changed /files/skills~1google-docs~1references~1reference-direct-request-composition.md/sha256
"f4a5b9fe0be81930c982f9fa28d6cb6ed0c421d116cdd42da52f3586a339d2f8"
"d9441e3eeb2ab8f15f8b964952178a780f778389dedfe784100dec410e011d08"
changed /files/skills~1google-docs~1references~1reference-direct-request-composition.md/size
9329
10992
removed /files/skills~1google-docs~1references~1reference-dropdown-code-mode.md
{
"sha256": "a5ceb032e30d966a62c34a7ee0a00f96ae2f3243e6fd11eb281794dfaa1c0397",
"size": 16088
}Field is absent
removed /files/skills~1google-docs~1references~1reference-figures-and-image-insertion.md
{
"sha256": "079525400ca9a709dc78ca32edbec73ca50c1aa1858ac62082fdbd7fd1f4c3fc",
"size": 3443
}Field is absent
removed /files/skills~1google-docs~1references~1reference-foreground-guard.md
{
"sha256": "29311ede3744c97db5ca87ec36b991a12e785dde84d8dbdcbdc9b983cf9d614c",
"size": 2538
}Field is absent
removed /files/skills~1google-docs~1references~1reference-headings-and-question-format.md
{
"sha256": "970f1ca6c30e7db8cbb7afb74e7515ad79a12dfc5fc5acd18ad673dca8941ab7",
"size": 5492
}Field is absent
removed /files/skills~1google-docs~1references~1reference-import-docx-to-native-docs.md
{
"sha256": "75d396905976cbc38c162317d29ad76b4e1ca88a0695b993002beaf9a0553274",
"size": 6672
}Field is absent
changed /files/skills~1google-docs~1references~1reference-meeting-notes-direct.md/sha256
"aafb77df09868005862ea81af6734c8a6e28d25c92deba77fe524b3f0b656384"
"070af740894dcda59b8a7cc1849689df416ea92f255ab30bff3ff0a52948e9e9"
changed /files/skills~1google-docs~1references~1reference-meeting-notes-direct.md/size
9261
5187
removed /files/skills~1google-docs~1references~1reference-native-create-direct.md
{
"sha256": "458f26ffc83cd168c2e38fd3216d47dcf817018596d69e7af80ba37efc7c4068",
"size": 4820
}Field is absent
removed /files/skills~1google-docs~1references~1reference-pdf-export-visual-qa.md
{
"sha256": "29bf6c64e1cd15ad0ea16d7d20297e0eed9d522575e5b3cf5d4a7f1fe507144c",
"size": 4098
}Field is absent
removed /files/skills~1google-docs~1references~1reference-request-shapes-and-write-safety.md
{
"sha256": "f31053a6bdb33fa43aa718785c9ee7bfe33cd3bdd647ef8007bc4da75c53b712",
"size": 14808
}Field is absent
removed /files/skills~1google-docs~1references~1reference-response-and-list-format.md
{
"sha256": "d3696ea316bd2cf90ec32060a1f5f00f26d2420aacb91b91654d0552bf2cd723",
"size": 2648
}Field is absent
removed /files/skills~1google-docs~1references~1reference-section-completeness-and-final-pass.md
{
"sha256": "9629e4e744e51b355d9f3ea738d66831b9c4de2b690ca621ef0ee118c6f6bcfc",
"size": 9240
}Field is absent
changed /files/skills~1google-docs~1references~1reference-smart-chips-and-building-blocks.md/sha256
"fb8e3d1fde87432b15010b37fa9e79c954c49bcd2acd597121ef242f425447d8"
"7ba1adef1071e43c02d049d9e06cf08a05be75edc3e0edf27e95d9949d79d425"
changed /files/skills~1google-docs~1references~1reference-smart-chips-and-building-blocks.md/size
10880
6575
removed /files/skills~1google-docs~1references~1reference-table-formatting-deep-dive.md
{
"sha256": "e810853ad7310704b3ba47ec2ad82e90091247ccc0edc41c67f2a2c9530d24be",
"size": 15176
}Field is absent
removed /files/skills~1google-docs~1references~1reference-template-preservation-and-edit-scope.md
{
"sha256": "87552b6699db28a47a2fef5c00bf4d26a99fa7676d6f1dfdd9799653f4605c66",
"size": 15244
}Field is absent
changed /files/skills~1google-docs~1references~1reference-trusted-read-wrapper.md/sha256
"5908da48d2b09619c3741f11bcca35ba061ee48055fcc2349ffd423059939c6b"
"defdd8ac40e32c11c5aa65471cd7ae4078721076b1815a51078a027c7df53b04"
changed /files/skills~1google-docs~1references~1reference-trusted-read-wrapper.md/size
7330
4901
changed /files/skills~1google-sheets~1SKILL.md/sha256
"54d160c27532e4ff610e9c5a7870fb80dc496b2d1d3f302996c21c505419c862"
"1851109d8f2c182236d28db136fb161d30c85287e5bc4fa79cf137673184c58d"
changed /files/skills~1google-sheets~1SKILL.md/size
9073
9420
changed /files/skills~1google-sheets~1references~1reference-import-spreadsheet-to-native-sheets.md/sha256
"8cbe578b2fa55f1276b16c4bcc343928d9afd3dfc6934e6a02fe9cb4a35c61ed"
"c0f78aad392819aff85a389cb04e4f560c54bdc4da249e0bd2cbf24df166f0fd"
changed /files/skills~1google-sheets~1references~1reference-import-spreadsheet-to-native-sheets.md/size
4475
4563
changed /files/skills~1google-slides~1SKILL.md/sha256
"fd14974d7c4ea9ff134bcc21cd32b2b1d61eeaa77c6dc757075b07eef6bedbdb"
"f85bd1d7080becf8c043a3646b6c3a53fbcd6d2a77c62a15112b8d89e01a4b83"
changed /files/skills~1google-slides~1SKILL.md/size
15364
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