{"owner":"google","repo":"clasp","hasSkills":true,"totalSkillsCount":3,"totalTokensCount":1502,"categories":["plugin-manifest","gemini-rule","cursor-rule"],"hasMcp":false,"mcpConfig":null,"found":[".claude-plugin/plugin.json","gemini.md",".cursorrules (typescript-clasp-cursorrules-prompt-file.mdc)"],"skills":{".claude-plugin/plugin.json":"{\n  \"name\": \"clasp\",\n  \"version\": \"1.0.0\",\n  \"description\": \"Develop Apps Script projects locally using clasp\",\n  \"mcpServers\": {\n    \"clasp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@google/clasp\", \"mcp\"]\n    }\n  }\n}\n","gemini.md":"# Gemini Project Overview: @google/clasp\n\nThis document provides a high-level overview of the `@google/clasp` project to guide AI-based development and maintenance.\n\n## Project Purpose\n\n`clasp` is a command-line tool for developing and managing Google Apps Script projects locally. It allows developers to write code in their preferred local environment, use version control (like Git), and then push the code to their Apps Script projects. It also supports managing deployments, versions, and executing functions remotely.\n\n## Tech Stack\n\n-   **Language:** TypeScript\n-   **Platform:** Node.js\n-   **CLI Framework:** [Commander.js](https://github.com/tj/commander.js)\n-   **Key Libraries:**\n    -   `googleapis`: To interact with Google APIs (Apps Script, Drive, etc.).\n    -   `google-auth-library`: For handling OAuth2 authentication.\n    -   `inquirer`: For interactive command-line prompts.\n    -   `ora`: For displaying spinners during long-running operations.\n-   **Testing:**\n    -   **Framework:** Mocha\n    -   **Assertions:** Chai\n    -   **Mocking:** Nock (for HTTP requests) and `mock-fs` (for filesystem).\n-   **Linting & Formatting:** Biome\n\n## Project Structure\n\n```\n.\n├── src/\n│   ├── commands/   # Definitions for each CLI command (e.g., push, pull, login).\n│   ├── core/       # Core logic for interacting with APIs and the filesystem.\n│   └── auth/       # Authentication-related logic.\n├── test/\n│   ├── commands/   # Tests for the CLI commands.\n│   └── core/       # Tests for the core logic.\n│   └── fixtures/   # Mock data and file templates used in tests.\n├── build/          # Compiled JavaScript output from TypeScript.\n├── package.json    # Project metadata, dependencies, and scripts.\n├── tsconfig.json   # TypeScript compiler configuration.\n├── biome.json      # Biome linter/formatter configuration.\n└── README.md       # Project documentation.\n```\n\n## Development Workflow\n\n### Setup\n\n1.  Install dependencies:\n    ```bash\n    npm install\n    ```\n\n### Common Commands\n\n-   **Compile TypeScript:**\n    ```bash\n    npm run compile\n    ```\n    *(This is equivalent to running `tspc`, a patched version of `tsc`)*\n\n-   **Build the project (compiles and installs):**\n    ```bash\n    npm run build\n    ```\n\n-   **Run tests:**\n    ```bash\n    npm test\n    ```\n\n-   **Check for linting and formatting issues:**\n    ```bash\n    npm run lint\n    ```\n    *(Uses `biome check`)*\n\n-   **Fix linting and formatting issues:**\n    ```bash\n    npm run fix\n    ```\n    *(Uses `biome check --fix`)*\n\n-   **Run the CLI locally for development:**\n    ```bash\n    npm run clasp -- <command>\n    # Example:\n    npm run clasp -- list-scripts\n    ```\n\n## Key Conventions & Architecture\n\n-   **Command/Core Separation:** CLI command definitions in `src/commands/` are kept separate from the underlying business logic in `src/core/`. Commands primarily parse options and call methods from the core classes.\n-   **Class-based Core:** The core logic is organized into classes like `Clasp`, `Project`, `Files`, and `Services` to encapsulate different areas of functionality.\n-   **Heavy Mocking in Tests:** Tests rely heavily on `nock` to mock all outgoing Google API calls and `mock-fs` to simulate the filesystem. This makes tests fast and deterministic. When adding new API interactions, corresponding mocks must be added in `test/mocks.ts`.\n-   **Asynchronous Code:** The entire codebase is asynchronous, using `async/await` extensively for all I/O and API operations.\n-   **Configuration:** Project-specific settings are stored in a local `.clasp.json` file. Global user credentials are in `~/.clasprc.json`.\n-   **Internationalization (i18n):** User-facing strings are managed through `@formatjs/intl` and are located in `src/messages/`.\n",".cursorrules (typescript-clasp-cursorrules-prompt-file.mdc)":"---\ndescription: \"Cursor rules for TypeScript development with Clasp app script integration.\"\nglobs: **/*\nalwaysApply: false\n---\nYou are an expert in TypeScript and Google Apps Script development using clasp. Follow the user's requirements carefully and to the letter. \n\nFirst think step by step - describe your plan for what to build in pseudocode, written down in great detail. Confirm, then write code! Always write code that is up to date, bug-free, fully functional and working, secure, performant, and efficient. Focus on readability over being performant. Fully implement all requested functionality. Be sure to reference file names. Be concise. Minimize any other prose. If you think there might not be a correct answer, say so. If you do not know the answer, say so instead of guessing. \n\nCode Style and Structure\n\n- Write concise, technical TypeScript code with accurate examples for Google Apps Script.\n- Use functional programming patterns when appropriate; use classes for Google Apps Script services and custom objects.\n- Prefer iteration and modularization over code duplication.\n- Use descriptive variable names with auxiliary verbs (e.g., isProcessing, hasError).\n- Structure files: exported functions, helper functions, types, and constants.\n\nNaming Conventions\n\n- Use PascalCase for class names and camelCase for functions and variables.\n- Follow Google Apps Script naming conventions for built-in services and methods.\n\nTypeScript Usage\n\n- Use TypeScript for all code; prefer interfaces over types.\n- Use enums when appropriate for Google Apps Script constants.\n- Implement custom types for Google Apps Script objects and return types.\n\nSyntax and Formatting\n\n- Use the \"function\" keyword for global functions and methods.\n- Use arrow functions for callbacks and anonymous functions.\n- Follow Google Apps Script best practices for script structure and organization.\n\nGoogle Apps Script Specifics\n\n- Utilize Google Apps Script services effectively (e.g., SpreadsheetApp, DriveApp).\n- Implement proper authorization scopes for Google Services.\n- Use time-based, event-driven, or custom triggers appropriately.\n- Optimize script execution time and quota usage.\n\nPerformance Optimization\n\n- Minimize API calls and use batch operations when possible.\n- Implement caching strategies for frequently accessed data.\n- Use efficient data structures and algorithms suitable for script limitations.\n\nKey Conventions\n\n- Follow Google Apps Script best practices for error handling and logging.\n- Implement proper security measures for handling user data and authentication.\n- Use clasp for version control and deployment of Google Apps Script projects.\n\nFollow Google Apps Script documentation for Services, Advanced Services, and Extend Google Workspace.\n"},"files":{".claude-plugin/plugin.json":"{\n  \"name\": \"clasp\",\n  \"version\": \"1.0.0\",\n  \"description\": \"Develop Apps Script projects locally using clasp\",\n  \"mcpServers\": {\n    \"clasp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@google/clasp\", \"mcp\"]\n    }\n  }\n}\n","gemini.md":"# Gemini Project Overview: @google/clasp\n\nThis document provides a high-level overview of the `@google/clasp` project to guide AI-based development and maintenance.\n\n## Project Purpose\n\n`clasp` is a command-line tool for developing and managing Google Apps Script projects locally. It allows developers to write code in their preferred local environment, use version control (like Git), and then push the code to their Apps Script projects. It also supports managing deployments, versions, and executing functions remotely.\n\n## Tech Stack\n\n-   **Language:** TypeScript\n-   **Platform:** Node.js\n-   **CLI Framework:** [Commander.js](https://github.com/tj/commander.js)\n-   **Key Libraries:**\n    -   `googleapis`: To interact with Google APIs (Apps Script, Drive, etc.).\n    -   `google-auth-library`: For handling OAuth2 authentication.\n    -   `inquirer`: For interactive command-line prompts.\n    -   `ora`: For displaying spinners during long-running operations.\n-   **Testing:**\n    -   **Framework:** Mocha\n    -   **Assertions:** Chai\n    -   **Mocking:** Nock (for HTTP requests) and `mock-fs` (for filesystem).\n-   **Linting & Formatting:** Biome\n\n## Project Structure\n\n```\n.\n├── src/\n│   ├── commands/   # Definitions for each CLI command (e.g., push, pull, login).\n│   ├── core/       # Core logic for interacting with APIs and the filesystem.\n│   └── auth/       # Authentication-related logic.\n├── test/\n│   ├── commands/   # Tests for the CLI commands.\n│   └── core/       # Tests for the core logic.\n│   └── fixtures/   # Mock data and file templates used in tests.\n├── build/          # Compiled JavaScript output from TypeScript.\n├── package.json    # Project metadata, dependencies, and scripts.\n├── tsconfig.json   # TypeScript compiler configuration.\n├── biome.json      # Biome linter/formatter configuration.\n└── README.md       # Project documentation.\n```\n\n## Development Workflow\n\n### Setup\n\n1.  Install dependencies:\n    ```bash\n    npm install\n    ```\n\n### Common Commands\n\n-   **Compile TypeScript:**\n    ```bash\n    npm run compile\n    ```\n    *(This is equivalent to running `tspc`, a patched version of `tsc`)*\n\n-   **Build the project (compiles and installs):**\n    ```bash\n    npm run build\n    ```\n\n-   **Run tests:**\n    ```bash\n    npm test\n    ```\n\n-   **Check for linting and formatting issues:**\n    ```bash\n    npm run lint\n    ```\n    *(Uses `biome check`)*\n\n-   **Fix linting and formatting issues:**\n    ```bash\n    npm run fix\n    ```\n    *(Uses `biome check --fix`)*\n\n-   **Run the CLI locally for development:**\n    ```bash\n    npm run clasp -- <command>\n    # Example:\n    npm run clasp -- list-scripts\n    ```\n\n## Key Conventions & Architecture\n\n-   **Command/Core Separation:** CLI command definitions in `src/commands/` are kept separate from the underlying business logic in `src/core/`. Commands primarily parse options and call methods from the core classes.\n-   **Class-based Core:** The core logic is organized into classes like `Clasp`, `Project`, `Files`, and `Services` to encapsulate different areas of functionality.\n-   **Heavy Mocking in Tests:** Tests rely heavily on `nock` to mock all outgoing Google API calls and `mock-fs` to simulate the filesystem. This makes tests fast and deterministic. When adding new API interactions, corresponding mocks must be added in `test/mocks.ts`.\n-   **Asynchronous Code:** The entire codebase is asynchronous, using `async/await` extensively for all I/O and API operations.\n-   **Configuration:** Project-specific settings are stored in a local `.clasp.json` file. Global user credentials are in `~/.clasprc.json`.\n-   **Internationalization (i18n):** User-facing strings are managed through `@formatjs/intl` and are located in `src/messages/`.\n",".cursorrules (typescript-clasp-cursorrules-prompt-file.mdc)":"---\ndescription: \"Cursor rules for TypeScript development with Clasp app script integration.\"\nglobs: **/*\nalwaysApply: false\n---\nYou are an expert in TypeScript and Google Apps Script development using clasp. Follow the user's requirements carefully and to the letter. \n\nFirst think step by step - describe your plan for what to build in pseudocode, written down in great detail. Confirm, then write code! Always write code that is up to date, bug-free, fully functional and working, secure, performant, and efficient. Focus on readability over being performant. Fully implement all requested functionality. Be sure to reference file names. Be concise. Minimize any other prose. If you think there might not be a correct answer, say so. If you do not know the answer, say so instead of guessing. \n\nCode Style and Structure\n\n- Write concise, technical TypeScript code with accurate examples for Google Apps Script.\n- Use functional programming patterns when appropriate; use classes for Google Apps Script services and custom objects.\n- Prefer iteration and modularization over code duplication.\n- Use descriptive variable names with auxiliary verbs (e.g., isProcessing, hasError).\n- Structure files: exported functions, helper functions, types, and constants.\n\nNaming Conventions\n\n- Use PascalCase for class names and camelCase for functions and variables.\n- Follow Google Apps Script naming conventions for built-in services and methods.\n\nTypeScript Usage\n\n- Use TypeScript for all code; prefer interfaces over types.\n- Use enums when appropriate for Google Apps Script constants.\n- Implement custom types for Google Apps Script objects and return types.\n\nSyntax and Formatting\n\n- Use the \"function\" keyword for global functions and methods.\n- Use arrow functions for callbacks and anonymous functions.\n- Follow Google Apps Script best practices for script structure and organization.\n\nGoogle Apps Script Specifics\n\n- Utilize Google Apps Script services effectively (e.g., SpreadsheetApp, DriveApp).\n- Implement proper authorization scopes for Google Services.\n- Use time-based, event-driven, or custom triggers appropriately.\n- Optimize script execution time and quota usage.\n\nPerformance Optimization\n\n- Minimize API calls and use batch operations when possible.\n- Implement caching strategies for frequently accessed data.\n- Use efficient data structures and algorithms suitable for script limitations.\n\nKey Conventions\n\n- Follow Google Apps Script best practices for error handling and logging.\n- Implement proper security measures for handling user data and authentication.\n- Use clasp for version control and deployment of Google Apps Script projects.\n\nFollow Google Apps Script documentation for Services, Advanced Services, and Extend Google Workspace.\n"},"items":[{"name":"gemini.md","path":"gemini.md","rawUrl":"https://raw.githubusercontent.com/google/clasp/HEAD/gemini.md","title":"Gemini Agent & Antigravity Instructions","category":"gemini-rule","format":"markdown","content":"# Gemini Project Overview: @google/clasp\n\nThis document provides a high-level overview of the `@google/clasp` project to guide AI-based development and maintenance.\n\n## Project Purpose\n\n`clasp` is a command-line tool for developing and managing Google Apps Script projects locally. It allows developers to write code in their preferred local environment, use version control (like Git), and then push the code to their Apps Script projects. It also supports managing deployments, versions, and executing functions remotely.\n\n## Tech Stack\n\n-   **Language:** TypeScript\n-   **Platform:** Node.js\n-   **CLI Framework:** [Commander.js](https://github.com/tj/commander.js)\n-   **Key Libraries:**\n    -   `googleapis`: To interact with Google APIs (Apps Script, Drive, etc.).\n    -   `google-auth-library`: For handling OAuth2 authentication.\n    -   `inquirer`: For interactive command-line prompts.\n    -   `ora`: For displaying spinners during long-running operations.\n-   **Testing:**\n    -   **Framework:** Mocha\n    -   **Assertions:** Chai\n    -   **Mocking:** Nock (for HTTP requests) and `mock-fs` (for filesystem).\n-   **Linting & Formatting:** Biome\n\n## Project Structure\n\n```\n.\n├── src/\n│   ├── commands/   # Definitions for each CLI command (e.g., push, pull, login).\n│   ├── core/       # Core logic for interacting with APIs and the filesystem.\n│   └── auth/       # Authentication-related logic.\n├── test/\n│   ├── commands/   # Tests for the CLI commands.\n│   └── core/       # Tests for the core logic.\n│   └── fixtures/   # Mock data and file templates used in tests.\n├── build/          # Compiled JavaScript output from TypeScript.\n├── package.json    # Project metadata, dependencies, and scripts.\n├── tsconfig.json   # TypeScript compiler configuration.\n├── biome.json      # Biome linter/formatter configuration.\n└── README.md       # Project documentation.\n```\n\n## Development Workflow\n\n### Setup\n\n1.  Install dependencies:\n    ```bash\n    npm install\n    ```\n\n### Common Commands\n\n-   **Compile TypeScript:**\n    ```bash\n    npm run compile\n    ```\n    *(This is equivalent to running `tspc`, a patched version of `tsc`)*\n\n-   **Build the project (compiles and installs):**\n    ```bash\n    npm run build\n    ```\n\n-   **Run tests:**\n    ```bash\n    npm test\n    ```\n\n-   **Check for linting and formatting issues:**\n    ```bash\n    npm run lint\n    ```\n    *(Uses `biome check`)*\n\n-   **Fix linting and formatting issues:**\n    ```bash\n    npm run fix\n    ```\n    *(Uses `biome check --fix`)*\n\n-   **Run the CLI locally for development:**\n    ```bash\n    npm run clasp -- <command>\n    # Example:\n    npm run clasp -- list-scripts\n    ```\n\n## Key Conventions & Architecture\n\n-   **Command/Core Separation:** CLI command definitions in `src/commands/` are kept separate from the underlying business logic in `src/core/`. Commands primarily parse options and call methods from the core classes.\n-   **Class-based Core:** The core logic is organized into classes like `Clasp`, `Project`, `Files`, and `Services` to encapsulate different areas of functionality.\n-   **Heavy Mocking in Tests:** Tests rely heavily on `nock` to mock all outgoing Google API calls and `mock-fs` to simulate the filesystem. This makes tests fast and deterministic. When adding new API interactions, corresponding mocks must be added in `test/mocks.ts`.\n-   **Asynchronous Code:** The entire codebase is asynchronous, using `async/await` extensively for all I/O and API operations.\n-   **Configuration:** Project-specific settings are stored in a local `.clasp.json` file. Global user credentials are in `~/.clasprc.json`.\n-   **Internationalization (i18n):** User-facing strings are managed through `@formatjs/intl` and are located in `src/messages/`.\n","isInternal":false,"tokens":911,"sizeBytes":3836},{"name":"plugin.json","path":".claude-plugin/plugin.json","rawUrl":"https://raw.githubusercontent.com/google/clasp/HEAD/.claude-plugin/plugin.json","title":"clasp","category":"plugin-manifest","format":"json","content":"{\n  \"name\": \"clasp\",\n  \"version\": \"1.0.0\",\n  \"description\": \"Develop Apps Script projects locally using clasp\",\n  \"mcpServers\": {\n    \"clasp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@google/clasp\", \"mcp\"]\n    }\n  }\n}\n","frontmatter":{"name":"clasp","version":"1.0.0","description":"Develop Apps Script projects locally using clasp","mcpServers":{"clasp":{"command":"npx","args":["-y","@google/clasp","mcp"]}}},"isInternal":false,"tokens":77,"sizeBytes":226},{"name":".cursorrules","path":".cursorrules (typescript-clasp-cursorrules-prompt-file.mdc)","rawUrl":"https://raw.githubusercontent.com/PatrickJS/awesome-cursorrules/main/rules/typescript-clasp-cursorrules-prompt-file.mdc","title":"Awesome Cursorrules: typescript clasp","category":"cursor-rule","format":"markdown","content":"---\ndescription: \"Cursor rules for TypeScript development with Clasp app script integration.\"\nglobs: **/*\nalwaysApply: false\n---\nYou are an expert in TypeScript and Google Apps Script development using clasp. Follow the user's requirements carefully and to the letter. \n\nFirst think step by step - describe your plan for what to build in pseudocode, written down in great detail. Confirm, then write code! Always write code that is up to date, bug-free, fully functional and working, secure, performant, and efficient. Focus on readability over being performant. Fully implement all requested functionality. Be sure to reference file names. Be concise. Minimize any other prose. If you think there might not be a correct answer, say so. If you do not know the answer, say so instead of guessing. \n\nCode Style and Structure\n\n- Write concise, technical TypeScript code with accurate examples for Google Apps Script.\n- Use functional programming patterns when appropriate; use classes for Google Apps Script services and custom objects.\n- Prefer iteration and modularization over code duplication.\n- Use descriptive variable names with auxiliary verbs (e.g., isProcessing, hasError).\n- Structure files: exported functions, helper functions, types, and constants.\n\nNaming Conventions\n\n- Use PascalCase for class names and camelCase for functions and variables.\n- Follow Google Apps Script naming conventions for built-in services and methods.\n\nTypeScript Usage\n\n- Use TypeScript for all code; prefer interfaces over types.\n- Use enums when appropriate for Google Apps Script constants.\n- Implement custom types for Google Apps Script objects and return types.\n\nSyntax and Formatting\n\n- Use the \"function\" keyword for global functions and methods.\n- Use arrow functions for callbacks and anonymous functions.\n- Follow Google Apps Script best practices for script structure and organization.\n\nGoogle Apps Script Specifics\n\n- Utilize Google Apps Script services effectively (e.g., SpreadsheetApp, DriveApp).\n- Implement proper authorization scopes for Google Services.\n- Use time-based, event-driven, or custom triggers appropriately.\n- Optimize script execution time and quota usage.\n\nPerformance Optimization\n\n- Minimize API calls and use batch operations when possible.\n- Implement caching strategies for frequently accessed data.\n- Use efficient data structures and algorithms suitable for script limitations.\n\nKey Conventions\n\n- Follow Google Apps Script best practices for error handling and logging.\n- Implement proper security measures for handling user data and authentication.\n- Use clasp for version control and deployment of Google Apps Script projects.\n\nFollow Google Apps Script documentation for Services, Advanced Services, and Extend Google Workspace.\n","tokens":514,"sizeBytes":2762}],"systemPromptSnippet":"<yakaai_skills repo=\"google/clasp\">\n<!-- File: gemini.md (Tokens: ~911 | Category: gemini-rule) -->\n# Gemini Project Overview: @google/clasp\n\nThis document provides a high-level overview of the `@google/clasp` project to guide AI-based development and maintenance.\n\n## Project Purpose\n\n`clasp` is a command-line tool for developing and managing Google Apps Script projects locally. It allows developers to write code in their preferred local environment, use version control (like Git), and then push the code to their Apps Script projects. It also supports managing deployments, versions, and executing functions remotely.\n\n## Tech Stack\n\n-   **Language:** TypeScript\n-   **Platform:** Node.js\n-   **CLI Framework:** [Commander.js](https://github.com/tj/commander.js)\n-   **Key Libraries:**\n    -   `googleapis`: To interact with Google APIs (Apps Script, Drive, etc.).\n    -   `google-auth-library`: For handling OAuth2 authentication.\n    -   `inquirer`: For interactive command-line prompts.\n    -   `ora`: For displaying spinners during long-running operations.\n-   **Testing:**\n    -   **Framework:** Mocha\n    -   **Assertions:** Chai\n    -   **Mocking:** Nock (for HTTP requests) and `mock-fs` (for filesystem).\n-   **Linting & Formatting:** Biome\n\n## Project Structure\n\n```\n.\n├── src/\n│   ├── commands/   # Definitions for each CLI command (e.g., push, pull, login).\n│   ├── core/       # Core logic for interacting with APIs and the filesystem.\n│   └── auth/       # Authentication-related logic.\n├── test/\n│   ├── commands/   # Tests for the CLI commands.\n│   └── core/       # Tests for the core logic.\n│   └── fixtures/   # Mock data and file templates used in tests.\n├── build/          # Compiled JavaScript output from TypeScript.\n├── package.json    # Project metadata, dependencies, and scripts.\n├── tsconfig.json   # TypeScript compiler configuration.\n├── biome.json      # Biome linter/formatter configuration.\n└── README.md       # Project documentation.\n```\n\n## Development Workflow\n\n### Setup\n\n1.  Install dependencies:\n    ```bash\n    npm install\n    ```\n\n### Common Commands\n\n-   **Compile TypeScript:**\n    ```bash\n    npm run compile\n    ```\n    *(This is equivalent to running `tspc`, a patched version of `tsc`)*\n\n-   **Build the project (compiles and installs):**\n    ```bash\n    npm run build\n    ```\n\n-   **Run tests:**\n    ```bash\n    npm test\n    ```\n\n-   **Check for linting and formatting issues:**\n    ```bash\n    npm run lint\n    ```\n    *(Uses `biome check`)*\n\n-   **Fix linting and formatting issues:**\n    ```bash\n    npm run fix\n    ```\n    *(Uses `biome check --fix`)*\n\n-   **Run the CLI locally for development:**\n    ```bash\n    npm run clasp -- <command>\n    # Example:\n    npm run clasp -- list-scripts\n    ```\n\n## Key Conventions & Architecture\n\n-   **Command/Core Separation:** CLI command definitions in `src/commands/` are kept separate from the underlying business logic in `src/core/`. Commands primarily parse options and call methods from the core classes.\n-   **Class-based Core:** The core logic is organized into classes like `Clasp`, `Project`, `Files`, and `Services` to encapsulate different areas of functionality.\n-   **Heavy Mocking in Tests:** Tests rely heavily on `nock` to mock all outgoing Google API calls and `mock-fs` to simulate the filesystem. This makes tests fast and deterministic. When adding new API interactions, corresponding mocks must be added in `test/mocks.ts`.\n-   **Asynchronous Code:** The entire codebase is asynchronous, using `async/await` extensively for all I/O and API operations.\n-   **Configuration:** Project-specific settings are stored in a local `.clasp.json` file. Global user credentials are in `~/.clasprc.json`.\n-   **Internationalization (i18n):** User-facing strings are managed through `@formatjs/intl` and are located in `src/messages/`.\n\n<!-- File: .claude-plugin/plugin.json (Tokens: ~77 | Category: plugin-manifest) -->\n{\n  \"name\": \"clasp\",\n  \"version\": \"1.0.0\",\n  \"description\": \"Develop Apps Script projects locally using clasp\",\n  \"mcpServers\": {\n    \"clasp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@google/clasp\", \"mcp\"]\n    }\n  }\n}\n\n<!-- File: .cursorrules (typescript-clasp-cursorrules-prompt-file.mdc) (Tokens: ~514 | Category: cursor-rule) -->\n---\ndescription: \"Cursor rules for TypeScript development with Clasp app script integration.\"\nglobs: **/*\nalwaysApply: false\n---\nYou are an expert in TypeScript and Google Apps Script development using clasp. Follow the user's requirements carefully and to the letter. \n\nFirst think step by step - describe your plan for what to build in pseudocode, written down in great detail. Confirm, then write code! Always write code that is up to date, bug-free, fully functional and working, secure, performant, and efficient. Focus on readability over being performant. Fully implement all requested functionality. Be sure to reference file names. Be concise. Minimize any other prose. If you think there might not be a correct answer, say so. If you do not know the answer, say so instead of guessing. \n\nCode Style and Structure\n\n- Write concise, technical TypeScript code with accurate examples for Google Apps Script.\n- Use functional programming patterns when appropriate; use classes for Google Apps Script services and custom objects.\n- Prefer iteration and modularization over code duplication.\n- Use descriptive variable names with auxiliary verbs (e.g., isProcessing, hasError).\n- Structure files: exported functions, helper functions, types, and constants.\n\nNaming Conventions\n\n- Use PascalCase for class names and camelCase for functions and variables.\n- Follow Google Apps Script naming conventions for built-in services and methods.\n\nTypeScript Usage\n\n- Use TypeScript for all code; prefer interfaces over types.\n- Use enums when appropriate for Google Apps Script constants.\n- Implement custom types for Google Apps Script objects and return types.\n\nSyntax and Formatting\n\n- Use the \"function\" keyword for global functions and methods.\n- Use arrow functions for callbacks and anonymous functions.\n- Follow Google Apps Script best practices for script structure and organization.\n\nGoogle Apps Script Specifics\n\n- Utilize Google Apps Script services effectively (e.g., SpreadsheetApp, DriveApp).\n- Implement proper authorization scopes for Google Services.\n- Use time-based, event-driven, or custom triggers appropriately.\n- Optimize script execution time and quota usage.\n\nPerformance Optimization\n\n- Minimize API calls and use batch operations when possible.\n- Implement caching strategies for frequently accessed data.\n- Use efficient data structures and algorithms suitable for script limitations.\n\nKey Conventions\n\n- Follow Google Apps Script best practices for error handling and logging.\n- Implement proper security measures for handling user data and authentication.\n- Use clasp for version control and deployment of Google Apps Script projects.\n\nFollow Google Apps Script documentation for Services, Advanced Services, and Extend Google Workspace.\n</yakaai_skills>"}