[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CS2SVD5HY0R9F4474M2ZAS":3,"skill-same:01M6CS2SVD5HY0R9F4474M2ZAS":59},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":30,"linkOnly":31,"markdownContent":32,"markdownBody":33,"frontMatter":34,"refName":37,"commitSha":38,"skillDirectory":39,"forksCount":40,"repositoryHtmlUrl":41,"repositoryHomepageUrl":41,"ownerHtmlUrl":42,"ownerBlogUrl":6,"ownerDescription":43,"updatedAt":44,"install":45,"resources":58},"01M6CS2SVD5HY0R9F4474M2ZAS","azure-data-tables-java",null,"Build table storage applications using the Azure Tables SDK for Java. Works with both Azure Table Storage and Cosmos DB Table API.","Sam-06060\u002Fjarvis-assistant","Sam-06060","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F208600848?v=4","01M6CRKT7C7FXD21V6HXF293S0","Samson Frank Ganta","01M6CRKTBEKYFD8YX5Z1GT99EE",6,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fazure-data-tables-java\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29],"azure","azure data tables java","java","data","sdk","storage","applications","api","table","build","community","2026-11-10 10:12:30",false,"---\nname: azure-data-tables-java\ndescription: \"Build table storage applications using the Azure Tables SDK for Java. Works with both Azure Table Storage and Cosmos DB Table API.\"\nrisk: unknown\nsource: community\ndate_added: \"2026-02-27\"\n---\n\n# Azure Tables SDK for Java\n\nBuild table storage applications using the Azure Tables SDK for Java. Works with both Azure Table Storage and Cosmos DB Table API.\n\n## Installation\n\n```xml\n\u003Cdependency>\n  \u003CgroupId>com.azure\u003C\u002FgroupId>\n  \u003CartifactId>azure-data-tables\u003C\u002FartifactId>\n  \u003Cversion>12.6.0-beta.1\u003C\u002Fversion>\n\u003C\u002Fdependency>\n```\n\n## Client Creation\n\n### With Connection String\n\n```java\nimport com.azure.data.tables.TableServiceClient;\nimport com.azure.data.tables.TableServiceClientBuilder;\nimport com.azure.data.tables.TableClient;\n\nTableServiceClient serviceClient = new TableServiceClientBuilder()\n    .connectionString(\"\u003Cyour-connection-string>\")\n    .buildClient();\n```\n\n### With Shared Key\n\n```java\nimport com.azure.core.credential.AzureNamedKeyCredential;\n\nAzureNamedKeyCredential credential = new AzureNamedKeyCredential(\n    \"\u003Caccount-name>\",\n    \"\u003Caccount-key>\");\n\nTableServiceClient serviceClient = new TableServiceClientBuilder()\n    .endpoint(\"\u003Cyour-table-account-url>\")\n    .credential(credential)\n    .buildClient();\n```\n\n### With SAS Token\n\n```java\nTableServiceClient serviceClient = new TableServiceClientBuilder()\n    .endpoint(\"\u003Cyour-table-account-url>\")\n    .sasToken(\"\u003Csas-token>\")\n    .buildClient();\n```\n\n### With DefaultAzureCredential (Storage only)\n\n```java\nimport com.azure.identity.DefaultAzureCredentialBuilder;\n\nTableServiceClient serviceClient = new TableServiceClientBuilder()\n    .endpoint(\"\u003Cyour-table-account-url>\")\n    .credential(new DefaultAzureCredentialBuilder().build())\n    .buildClient();\n```\n\n## Key Concepts\n\n- **TableServiceClient**: Manage tables (create, list, delete)\n- **TableClient**: Manage entities within a table (CRUD)\n- **Partition Key**: Groups entities for efficient queries\n- **Row Key**: Unique identifier within a partition\n- **Entity**: A row with up to 252 properties (1MB Storage, 2MB Cosmos)\n\n## Core Patterns\n\n### Create Table\n\n```java\n\u002F\u002F Create table (throws if exists)\nTableClient tableClient = serviceClient.createTable(\"mytable\");\n\n\u002F\u002F Create if not exists (no exception)\nTableClient tableClient = serviceClient.createTableIfNotExists(\"mytable\");\n```\n\n### Get Table Client\n\n```java\n\u002F\u002F From service client\nTableClient tableClient = serviceClient.getTableClient(\"mytable\");\n\n\u002F\u002F Direct construction\nTableClient tableClient = new TableClientBuilder()\n    .connectionString(\"\u003Cconnection-string>\")\n    .tableName(\"mytable\")\n    .buildClient();\n```\n\n### Create Entity\n\n```java\nimport com.azure.data.tables.models.TableEntity;\n\nTableEntity entity = new TableEntity(\"partitionKey\", \"rowKey\")\n    .addProperty(\"Name\", \"Product A\")\n    .addProperty(\"Price\", 29.99)\n    .addProperty(\"Quantity\", 100)\n    .addProperty(\"IsAvailable\", true);\n\ntableClient.createEntity(entity);\n```\n\n### Get Entity\n\n```java\nTableEntity entity = tableClient.getEntity(\"partitionKey\", \"rowKey\");\n\nString name = (String) entity.getProperty(\"Name\");\nDouble price = (Double) entity.getProperty(\"Price\");\nSystem.out.printf(\"Product: %s, Price: %.2f%n\", name, price);\n```\n\n### Update Entity\n\n```java\nimport com.azure.data.tables.models.TableEntityUpdateMode;\n\n\u002F\u002F Merge (update only specified properties)\nTableEntity updateEntity = new TableEntity(\"partitionKey\", \"rowKey\")\n    .addProperty(\"Price\", 24.99);\ntableClient.updateEntity(updateEntity, TableEntityUpdateMode.MERGE);\n\n\u002F\u002F Replace (replace entire entity)\nTableEntity replaceEntity = new TableEntity(\"partitionKey\", \"rowKey\")\n    .addProperty(\"Name\", \"Product A Updated\")\n    .addProperty(\"Price\", 24.99)\n    .addProperty(\"Quantity\", 150);\ntableClient.updateEntity(replaceEntity, TableEntityUpdateMode.REPLACE);\n```\n\n### Upsert Entity\n\n```java\n\u002F\u002F Insert or update (merge mode)\ntableClient.upsertEntity(entity, TableEntityUpdateMode.MERGE);\n\n\u002F\u002F Insert or replace\ntableClient.upsertEntity(entity, TableEntityUpdateMode.REPLACE);\n```\n\n### Delete Entity\n\n```java\ntableClient.deleteEntity(\"partitionKey\", \"rowKey\");\n```\n\n### List Entities\n\n```java\nimport com.azure.data.tables.models.ListEntitiesOptions;\n\n\u002F\u002F List all entities\nfor (TableEntity entity : tableClient.listEntities()) {\n    System.out.printf(\"%s - %s%n\",\n        entity.getPartitionKey(),\n        entity.getRowKey());\n}\n\n\u002F\u002F With filtering and selection\nListEntitiesOptions options = new ListEntitiesOptions()\n    .setFilter(\"PartitionKey eq 'sales'\")\n    .setSelect(\"Name\", \"Price\");\n\nfor (TableEntity entity : tableClient.listEntities(options, null, null)) {\n    System.out.printf(\"%s: %.2f%n\",\n        entity.getProperty(\"Name\"),\n        entity.getProperty(\"Price\"));\n}\n```\n\n### Query with OData Filter\n\n```java\n\u002F\u002F Filter by partition key\nListEntitiesOptions options = new ListEntitiesOptions()\n    .setFilter(\"PartitionKey eq 'electronics'\");\n\n\u002F\u002F Filter with multiple conditions\noptions.setFilter(\"PartitionKey eq 'electronics' and Price gt 100\");\n\n\u002F\u002F Filter with comparison operators\noptions.setFilter(\"Quantity ge 10 and Quantity le 100\");\n\n\u002F\u002F Top N results\noptions.setTop(10);\n\nfor (TableEntity entity : tableClient.listEntities(options, null, null)) {\n    System.out.println(entity.getRowKey());\n}\n```\n\n### Batch Operations (Transactions)\n\n```java\nimport com.azure.data.tables.models.TableTransactionAction;\nimport com.azure.data.tables.models.TableTransactionActionType;\nimport java.util.Arrays;\n\n\u002F\u002F All entities must have same partition key\nList\u003CTableTransactionAction> actions = Arrays.asList(\n    new TableTransactionAction(\n        TableTransactionActionType.CREATE,\n        new TableEntity(\"batch\", \"row1\").addProperty(\"Name\", \"Item 1\")),\n    new TableTransactionAction(\n        TableTransactionActionType.CREATE,\n        new TableEntity(\"batch\", \"row2\").addProperty(\"Name\", \"Item 2\")),\n    new TableTransactionAction(\n        TableTransactionActionType.UPSERT_MERGE,\n        new TableEntity(\"batch\", \"row3\").addProperty(\"Name\", \"Item 3\"))\n);\n\ntableClient.submitTransaction(actions);\n```\n\n### List Tables\n\n```java\nimport com.azure.data.tables.models.TableItem;\nimport com.azure.data.tables.models.ListTablesOptions;\n\n\u002F\u002F List all tables\nfor (TableItem table : serviceClient.listTables()) {\n    System.out.println(table.getName());\n}\n\n\u002F\u002F Filter tables\nListTablesOptions options = new ListTablesOptions()\n    .setFilter(\"TableName eq 'mytable'\");\n\nfor (TableItem table : serviceClient.listTables(options, null, null)) {\n    System.out.println(table.getName());\n}\n```\n\n### Delete Table\n\n```java\nserviceClient.deleteTable(\"mytable\");\n```\n\n## Typed Entities\n\n```java\npublic class Product implements TableEntity {\n    private String partitionKey;\n    private String rowKey;\n    private OffsetDateTime timestamp;\n    private String eTag;\n    private String name;\n    private double price;\n    \n    \u002F\u002F Getters and setters for all fields\n    @Override\n    public String getPartitionKey() { return partitionKey; }\n    @Override\n    public void setPartitionKey(String partitionKey) { this.partitionKey = partitionKey; }\n    @Override\n    public String getRowKey() { return rowKey; }\n    @Override\n    public void setRowKey(String rowKey) { this.rowKey = rowKey; }\n    \u002F\u002F ... other getters\u002Fsetters\n    \n    public String getName() { return name; }\n    public void setName(String name) { this.name = name; }\n    public double getPrice() { return price; }\n    public void setPrice(double price) { this.price = price; }\n}\n\n\u002F\u002F Usage\nProduct product = new Product();\nproduct.setPartitionKey(\"electronics\");\nproduct.setRowKey(\"laptop-001\");\nproduct.setName(\"Laptop\");\nproduct.setPrice(999.99);\n\ntableClient.createEntity(product);\n```\n\n## Error Handling\n\n```java\nimport com.azure.data.tables.models.TableServiceException;\n\ntry {\n    tableClient.createEntity(entity);\n} catch (TableServiceException e) {\n    System.out.println(\"Status: \" + e.getResponse().getStatusCode());\n    System.out.println(\"Error: \" + e.getMessage());\n    \u002F\u002F 409 = Conflict (entity exists)\n    \u002F\u002F 404 = Not Found\n}\n```\n\n## Environment Variables\n\n```bash\n# Storage Account\nAZURE_TABLES_CONNECTION_STRING=DefaultEndpointsProtocol=https;AccountName=...\nAZURE_TABLES_ENDPOINT=https:\u002F\u002F\u003Caccount>.table.core.windows.net\n\n# Cosmos DB Table API\nCOSMOS_TABLE_ENDPOINT=https:\u002F\u002F\u003Caccount>.table.cosmosdb.azure.com\n```\n\n## Best Practices\n\n1. **Partition Key Design**: Choose keys that distribute load evenly\n2. **Batch Operations**: Use transactions for atomic multi-entity updates\n3. **Query Optimization**: Always filter by PartitionKey when possible\n4. **Select Projection**: Only select needed properties for performance\n5. **Entity Size**: Keep entities under 1MB (Storage) or 2MB (Cosmos)\n\n## Trigger Phrases\n\n- \"Azure Tables Java\"\n- \"table storage SDK\"\n- \"Cosmos DB Table API\"\n- \"NoSQL key-value storage\"\n- \"partition key row key\"\n- \"table entity CRUD\"\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n","# Azure Tables SDK for Java\n\nBuild table storage applications using the Azure Tables SDK for Java. Works with both Azure Table Storage and Cosmos DB Table API.\n\n## Installation\n\n```xml\n\u003Cdependency>\n  \u003CgroupId>com.azure\u003C\u002FgroupId>\n  \u003CartifactId>azure-data-tables\u003C\u002FartifactId>\n  \u003Cversion>12.6.0-beta.1\u003C\u002Fversion>\n\u003C\u002Fdependency>\n```\n\n## Client Creation\n\n### With Connection String\n\n```java\nimport com.azure.data.tables.TableServiceClient;\nimport com.azure.data.tables.TableServiceClientBuilder;\nimport com.azure.data.tables.TableClient;\n\nTableServiceClient serviceClient = new TableServiceClientBuilder()\n    .connectionString(\"\u003Cyour-connection-string>\")\n    .buildClient();\n```\n\n### With Shared Key\n\n```java\nimport com.azure.core.credential.AzureNamedKeyCredential;\n\nAzureNamedKeyCredential credential = new AzureNamedKeyCredential(\n    \"\u003Caccount-name>\",\n    \"\u003Caccount-key>\");\n\nTableServiceClient serviceClient = new TableServiceClientBuilder()\n    .endpoint(\"\u003Cyour-table-account-url>\")\n    .credential(credential)\n    .buildClient();\n```\n\n### With SAS Token\n\n```java\nTableServiceClient serviceClient = new TableServiceClientBuilder()\n    .endpoint(\"\u003Cyour-table-account-url>\")\n    .sasToken(\"\u003Csas-token>\")\n    .buildClient();\n```\n\n### With DefaultAzureCredential (Storage only)\n\n```java\nimport com.azure.identity.DefaultAzureCredentialBuilder;\n\nTableServiceClient serviceClient = new TableServiceClientBuilder()\n    .endpoint(\"\u003Cyour-table-account-url>\")\n    .credential(new DefaultAzureCredentialBuilder().build())\n    .buildClient();\n```\n\n## Key Concepts\n\n- **TableServiceClient**: Manage tables (create, list, delete)\n- **TableClient**: Manage entities within a table (CRUD)\n- **Partition Key**: Groups entities for efficient queries\n- **Row Key**: Unique identifier within a partition\n- **Entity**: A row with up to 252 properties (1MB Storage, 2MB Cosmos)\n\n## Core Patterns\n\n### Create Table\n\n```java\n\u002F\u002F Create table (throws if exists)\nTableClient tableClient = serviceClient.createTable(\"mytable\");\n\n\u002F\u002F Create if not exists (no exception)\nTableClient tableClient = serviceClient.createTableIfNotExists(\"mytable\");\n```\n\n### Get Table Client\n\n```java\n\u002F\u002F From service client\nTableClient tableClient = serviceClient.getTableClient(\"mytable\");\n\n\u002F\u002F Direct construction\nTableClient tableClient = new TableClientBuilder()\n    .connectionString(\"\u003Cconnection-string>\")\n    .tableName(\"mytable\")\n    .buildClient();\n```\n\n### Create Entity\n\n```java\nimport com.azure.data.tables.models.TableEntity;\n\nTableEntity entity = new TableEntity(\"partitionKey\", \"rowKey\")\n    .addProperty(\"Name\", \"Product A\")\n    .addProperty(\"Price\", 29.99)\n    .addProperty(\"Quantity\", 100)\n    .addProperty(\"IsAvailable\", true);\n\ntableClient.createEntity(entity);\n```\n\n### Get Entity\n\n```java\nTableEntity entity = tableClient.getEntity(\"partitionKey\", \"rowKey\");\n\nString name = (String) entity.getProperty(\"Name\");\nDouble price = (Double) entity.getProperty(\"Price\");\nSystem.out.printf(\"Product: %s, Price: %.2f%n\", name, price);\n```\n\n### Update Entity\n\n```java\nimport com.azure.data.tables.models.TableEntityUpdateMode;\n\n\u002F\u002F Merge (update only specified properties)\nTableEntity updateEntity = new TableEntity(\"partitionKey\", \"rowKey\")\n    .addProperty(\"Price\", 24.99);\ntableClient.updateEntity(updateEntity, TableEntityUpdateMode.MERGE);\n\n\u002F\u002F Replace (replace entire entity)\nTableEntity replaceEntity = new TableEntity(\"partitionKey\", \"rowKey\")\n    .addProperty(\"Name\", \"Product A Updated\")\n    .addProperty(\"Price\", 24.99)\n    .addProperty(\"Quantity\", 150);\ntableClient.updateEntity(replaceEntity, TableEntityUpdateMode.REPLACE);\n```\n\n### Upsert Entity\n\n```java\n\u002F\u002F Insert or update (merge mode)\ntableClient.upsertEntity(entity, TableEntityUpdateMode.MERGE);\n\n\u002F\u002F Insert or replace\ntableClient.upsertEntity(entity, TableEntityUpdateMode.REPLACE);\n```\n\n### Delete Entity\n\n```java\ntableClient.deleteEntity(\"partitionKey\", \"rowKey\");\n```\n\n### List Entities\n\n```java\nimport com.azure.data.tables.models.ListEntitiesOptions;\n\n\u002F\u002F List all entities\nfor (TableEntity entity : tableClient.listEntities()) {\n    System.out.printf(\"%s - %s%n\",\n        entity.getPartitionKey(),\n        entity.getRowKey());\n}\n\n\u002F\u002F With filtering and selection\nListEntitiesOptions options = new ListEntitiesOptions()\n    .setFilter(\"PartitionKey eq 'sales'\")\n    .setSelect(\"Name\", \"Price\");\n\nfor (TableEntity entity : tableClient.listEntities(options, null, null)) {\n    System.out.printf(\"%s: %.2f%n\",\n        entity.getProperty(\"Name\"),\n        entity.getProperty(\"Price\"));\n}\n```\n\n### Query with OData Filter\n\n```java\n\u002F\u002F Filter by partition key\nListEntitiesOptions options = new ListEntitiesOptions()\n    .setFilter(\"PartitionKey eq 'electronics'\");\n\n\u002F\u002F Filter with multiple conditions\noptions.setFilter(\"PartitionKey eq 'electronics' and Price gt 100\");\n\n\u002F\u002F Filter with comparison operators\noptions.setFilter(\"Quantity ge 10 and Quantity le 100\");\n\n\u002F\u002F Top N results\noptions.setTop(10);\n\nfor (TableEntity entity : tableClient.listEntities(options, null, null)) {\n    System.out.println(entity.getRowKey());\n}\n```\n\n### Batch Operations (Transactions)\n\n```java\nimport com.azure.data.tables.models.TableTransactionAction;\nimport com.azure.data.tables.models.TableTransactionActionType;\nimport java.util.Arrays;\n\n\u002F\u002F All entities must have same partition key\nList\u003CTableTransactionAction> actions = Arrays.asList(\n    new TableTransactionAction(\n        TableTransactionActionType.CREATE,\n        new TableEntity(\"batch\", \"row1\").addProperty(\"Name\", \"Item 1\")),\n    new TableTransactionAction(\n        TableTransactionActionType.CREATE,\n        new TableEntity(\"batch\", \"row2\").addProperty(\"Name\", \"Item 2\")),\n    new TableTransactionAction(\n        TableTransactionActionType.UPSERT_MERGE,\n        new TableEntity(\"batch\", \"row3\").addProperty(\"Name\", \"Item 3\"))\n);\n\ntableClient.submitTransaction(actions);\n```\n\n### List Tables\n\n```java\nimport com.azure.data.tables.models.TableItem;\nimport com.azure.data.tables.models.ListTablesOptions;\n\n\u002F\u002F List all tables\nfor (TableItem table : serviceClient.listTables()) {\n    System.out.println(table.getName());\n}\n\n\u002F\u002F Filter tables\nListTablesOptions options = new ListTablesOptions()\n    .setFilter(\"TableName eq 'mytable'\");\n\nfor (TableItem table : serviceClient.listTables(options, null, null)) {\n    System.out.println(table.getName());\n}\n```\n\n### Delete Table\n\n```java\nserviceClient.deleteTable(\"mytable\");\n```\n\n## Typed Entities\n\n```java\npublic class Product implements TableEntity {\n    private String partitionKey;\n    private String rowKey;\n    private OffsetDateTime timestamp;\n    private String eTag;\n    private String name;\n    private double price;\n    \n    \u002F\u002F Getters and setters for all fields\n    @Override\n    public String getPartitionKey() { return partitionKey; }\n    @Override\n    public void setPartitionKey(String partitionKey) { this.partitionKey = partitionKey; }\n    @Override\n    public String getRowKey() { return rowKey; }\n    @Override\n    public void setRowKey(String rowKey) { this.rowKey = rowKey; }\n    \u002F\u002F ... other getters\u002Fsetters\n    \n    public String getName() { return name; }\n    public void setName(String name) { this.name = name; }\n    public double getPrice() { return price; }\n    public void setPrice(double price) { this.price = price; }\n}\n\n\u002F\u002F Usage\nProduct product = new Product();\nproduct.setPartitionKey(\"electronics\");\nproduct.setRowKey(\"laptop-001\");\nproduct.setName(\"Laptop\");\nproduct.setPrice(999.99);\n\ntableClient.createEntity(product);\n```\n\n## Error Handling\n\n```java\nimport com.azure.data.tables.models.TableServiceException;\n\ntry {\n    tableClient.createEntity(entity);\n} catch (TableServiceException e) {\n    System.out.println(\"Status: \" + e.getResponse().getStatusCode());\n    System.out.println(\"Error: \" + e.getMessage());\n    \u002F\u002F 409 = Conflict (entity exists)\n    \u002F\u002F 404 = Not Found\n}\n```\n\n## Environment Variables\n\n```bash\n# Storage Account\nAZURE_TABLES_CONNECTION_STRING=DefaultEndpointsProtocol=https;AccountName=...\nAZURE_TABLES_ENDPOINT=https:\u002F\u002F\u003Caccount>.table.core.windows.net\n\n# Cosmos DB Table API\nCOSMOS_TABLE_ENDPOINT=https:\u002F\u002F\u003Caccount>.table.cosmosdb.azure.com\n```\n\n## Best Practices\n\n1. **Partition Key Design**: Choose keys that distribute load evenly\n2. **Batch Operations**: Use transactions for atomic multi-entity updates\n3. **Query Optimization**: Always filter by PartitionKey when possible\n4. **Select Projection**: Only select needed properties for performance\n5. **Entity Size**: Keep entities under 1MB (Storage) or 2MB (Cosmos)\n\n## Trigger Phrases\n\n- \"Azure Tables Java\"\n- \"table storage SDK\"\n- \"Cosmos DB Table API\"\n- \"NoSQL key-value storage\"\n- \"partition key row key\"\n- \"table entity CRUD\"\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n",{"name":5,"risk":35,"source":29,"date_added":36,"description":7},"unknown","2026-02-27","main","a50a3aa6b39fb0e1b7db88bef1bfc9c93606e126","modules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fazure-data-tables-java",0,"https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant","https:\u002F\u002Fgithub.com\u002FSam-06060","Mobile Application Developer | Kotlin | Flutter, KMP, Swfit, Android,Swift UI | Building at Saar It Resources | Creator of Jarvis (AI Assistant)","2026-06-23 05:13:38",{"source":8,"skillName":5,"commands":46,"prompt":56,"zipAvailable":57},[47,50,53],{"tool":48,"command":49},"npx","npx skills add Sam-06060\u002Fjarvis-assistant --skill azure-data-tables-java",{"tool":51,"command":52},"bunx","bunx skills add Sam-06060\u002Fjarvis-assistant --skill azure-data-tables-java",{"tool":54,"command":55},"pnpm","pnpm dlx skills add Sam-06060\u002Fjarvis-assistant --skill azure-data-tables-java","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fazure-data-tables-java\u002FSKILL.md",true,[],[60,73,89,116,135,162],{"skillNo":61,"name":62,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":63,"categories":64,"keywords":70,"publishedAt":30},"01M6GDRVS6FXX3ESH0C9DW01C0","test_skill","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fscratch\u002Ftest_skill\u002FSKILL.md",[65],{"categoryNo":66,"categoryName":67,"taxonomyType":68,"taxonomyTypeDesc":69},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[71,72],"Test Skill","test",{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":79,"publishedAt":30},"01M6GDRQ40HX22MA6XWC31RHHK","zustand-store-ts","Create Zustand stores following established patterns with proper TypeScript types and middleware.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzustand-store-ts\u002FSKILL.md",[],[80,81,82,83,84,85,86,29,87,88],"zustand store ts","zustand","store","with","types","middleware","patterns","create","typescript",{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":98,"publishedAt":30},"01M6GDRKEA0WE670SPFWX5GKCN","zoom-automation","Automate Zoom meeting creation, management, recordings, webinars, and participant tracking via Rube MCP (Composio). Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzoom-automation\u002FSKILL.md",[95],{"categoryNo":96,"categoryName":97,"taxonomyType":68,"taxonomyTypeDesc":69},"01JBSEEDCAT000000000000023","Skill与智能体开发",[99,100,101,102,103,104,105,106,107,108,109,110,111,112,29,113,114,115],"automation","zoom automation","zoom","first","Tools","search","MCP","via","meeting","automate","critical","creation","webinars","composio","recordings","management","tracking",{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":123,"publishedAt":30},"01M6GDRFS1452PC71JQ38S24HR","zoho-crm-automation","Automate Zoho CRM tasks via Rube MCP (Composio): create\u002Fupdate records, search contacts, manage leads, and convert leads. Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzoho-crm-automation\u002FSKILL.md",[122],{"categoryNo":96,"categoryName":97,"taxonomyType":68,"taxonomyTypeDesc":69},[124,99,125,126,127,128,129,29,104,130,112,131,109,108,103,132,87,133,105,134],"crm automation","zoho crm","crm","zoho crm automation","zoho","leads","contacts","records","update","tasks","manage",{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":144,"publishedAt":30},"01M6GDRCKQBAVTGHX5XBH26KPZ","zod-validation-expert","Expert in Zod — TypeScript-first schema validation. Covers parsing, custom errors, refinements, type inference, and integration with React Hook Form, Next.js, and tRPC.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzod-validation-expert\u002FSKILL.md",[141],{"categoryNo":142,"categoryName":143,"taxonomyType":68,"taxonomyTypeDesc":69},"01JBSEEDCAT000000000000009","前端开发",[145,146,147,148,149,88,150,151,152,153,154,155,83,156,157,158,159,29,160,161],"expert","zod","zod validation expert","validation","react","safe","parsing","errors","schema validation","react hook form","hook","trpc","form","type","next","schema","Next.js",{"skillNo":163,"name":164,"nameZh":6,"description":165,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":166,"categories":167,"keywords":169,"publishedAt":30},"01M6GDR658B08K4MY0RWD4A6EH","zeroize-audit","Detects missing zeroization of sensitive data in source code and identifies zeroization removed by compiler optimizations, with assembly-level analysis, and control-flow verification. Use for auditing C\u002FC++\u002FRust code handling secrets, keys, passwords, or other sensitive data.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzeroize-audit\u002FSKILL.md",[168],{"categoryNo":96,"categoryName":97,"taxonomyType":68,"taxonomyTypeDesc":69},[170,171,172,173,174,175,176,177,29,178,179,180,181,182,22,183,184,185,186,105],"zeroize audit","audit","write","passwords","get","project","c++","activate","assembly","read","Bash","secrets","analysis","flow","verification","code","rust"]