[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FVABVBKZ0405D1CXME6RTW":3,"skill-same:01M6FVABVBKZ0405D1CXME6RTW":66},{"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":23,"publishedAt":36,"linkOnly":37,"markdownContent":38,"markdownBody":39,"frontMatter":40,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":14,"repositoryHtmlUrl":47,"repositoryHomepageUrl":6,"ownerHtmlUrl":48,"ownerBlogUrl":49,"ownerDescription":50,"updatedAt":51,"install":52,"resources":65},"01M6FVABVBKZ0405D1CXME6RTW","NetSuite Automation",null,"NetSuite Automation: manage customers, sales orders, invoices, inventory, and records via Oracle NetSuite ERP with SuiteQL queries","reikiplanet\u002Fdaoskills","reikiplanet","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F96377599?v=4","01M6CVWCMD740YHQDK7E9QYBW4","Reiki Planet","01M6CVWCS4KXVA2CWFVJ43EAXK",0,"MIT","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fdevelopment\u002Fcomposio-netsuite-automation\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,5,25,26,27,28,29,30,31,32,33,34,35],"automation","netsuite","oracle","inventory","erp","sales","queries","manage","orders","via","records","with","2026-11-10 10:12:30",false,"---\nname: NetSuite Automation\ndescription: \"NetSuite Automation: manage customers, sales orders, invoices, inventory, and records via Oracle NetSuite ERP with SuiteQL queries\"\nrequires:\n  mcp: [rube]\n---\n\n# NetSuite Automation\n\nAutomate Oracle NetSuite ERP operations including creating customers and sales orders, running SuiteQL queries, upserting records by external ID, and inspecting record metadata for comprehensive business management.\n\n**Toolkit docs:** [composio.dev\u002Ftoolkits\u002Fnetsuite](https:\u002F\u002Fcomposio.dev\u002Ftoolkits\u002Fnetsuite)\n\n---\n\n## Setup\n\nThis skill requires the **Rube MCP server** connected at `https:\u002F\u002Frube.app\u002Fmcp`.\n\nBefore executing any tools, ensure an active connection exists for the `netsuite` toolkit. If no connection is active, initiate one via `RUBE_MANAGE_CONNECTIONS`.\n\n---\n\n## Core Workflows\n\n### 1. Create Sales Orders\n\nCreate customer orders with line items including item references, quantities, and pricing.\n\n**Tool:** `NETSUITE_CREATE_SALES_ORDER`\n\n**Key Parameters:**\n- `entity` (required) -- Customer reference: `{\"id\": \"\u003Cinternal_id>\"}`\n- `item` (required) -- Container with `items` array, each containing:\n  - `item` (required) -- Item reference: `{\"id\": \"\u003Cinternal_id>\"}`\n  - `quantity` (required) -- Units to order (non-negative)\n  - `rate` -- Unit price (optional if item has default pricing)\n  - `amount` -- Total line amount (alternative to rate)\n  - `taxcode` -- Tax code reference: `{\"id\": \"\u003Cinternal_id>\"}` (required if SuiteTax enabled)\n  - `description` -- Line item notes\n- `tranDate` -- Transaction date in `YYYY-MM-DD` format\n- `memo` -- Header memo\n- `orderStatus` -- `\"A\"` (Pending Approval) or `\"B\"` (Pending Fulfillment)\n- `otherrefnum` -- External reference or PO number\n\n**Example:**\n```\nTool: NETSUITE_CREATE_SALES_ORDER\nArguments:\n  entity: {\"id\": \"1234\"}\n  item: {\n    \"items\": [\n      {\"item\": {\"id\": \"56\"}, \"quantity\": 10, \"rate\": 25.00},\n      {\"item\": {\"id\": \"78\"}, \"quantity\": 5, \"rate\": 50.00}\n    ]\n  }\n  tranDate: \"2026-02-11\"\n  memo: \"Q1 bulk order\"\n  orderStatus: \"B\"\n```\n\n---\n\n### 2. Run SuiteQL Queries\n\nExecute ad-hoc SQL queries against NetSuite data with server-side paging.\n\n**Tool:** `NETSUITE_RUN_SUITEQL_QUERY`\n\n**Key Parameters:**\n- `q` (required) -- SuiteQL SELECT statement\n- `limit` -- Rows per page (default varies)\n- `offset` -- Zero-based index of first row (must be a multiple of `limit`)\n\n**Examples:**\n```\nTool: NETSUITE_RUN_SUITEQL_QUERY\nArguments:\n  q: \"SELECT id, companyname, email FROM customer WHERE isinactive = 'F' ORDER BY companyname\"\n  limit: 100\n  offset: 0\n```\n\n```\nTool: NETSUITE_RUN_SUITEQL_QUERY\nArguments:\n  q: \"SELECT id, entitystatus, total FROM transaction WHERE type = 'SalesOrd' AND trandate >= '2026-01-01'\"\n  limit: 50\n```\n\n---\n\n### 3. Create and Manage Customers\n\nCreate new customer records with subsidiary assignment and contact details.\n\n**Tools:**\n- `NETSUITE_CREATE_CUSTOMER` -- Create a new customer\n- `NETSUITE_GET_CUSTOMER` -- Retrieve customer by internal ID\n- `NETSUITE_UPDATE_CUSTOMER` -- Update existing customer (PATCH semantics)\n\n**Key Parameters for `NETSUITE_CREATE_CUSTOMER`:**\n- `body` (required) -- JSON object with customer data. Required fields:\n  - `subsidiary` -- Object with `id` (subsidiary internal ID)\n  - Either `companyName` (for businesses) or `firstName` + `lastName` (for individuals)\n  - Optional: `email`, `phone`, `isPerson` (set to `\"T\"` for individuals), `comments`\n- `replace` -- Comma-separated sublist names to fully replace (e.g., `\"contacts,addressbook\"`)\n\n**Example:**\n```\nTool: NETSUITE_CREATE_CUSTOMER\nArguments:\n  body: {\n    \"companyName\": \"Acme Corp\",\n    \"subsidiary\": {\"id\": \"1\"},\n    \"email\": \"info@acme.com\",\n    \"phone\": \"555-0100\"\n  }\n```\n\n---\n\n### 4. Upsert Records by External ID\n\nCreate or update records idempotently using an external identifier. Essential for sync workflows.\n\n**Tool:** `NETSUITE_UPSERT_RECORD_BY_EXTERNAL_ID`\n\n**Key Parameters:**\n- `record_type` (required) -- Record type name, e.g., `\"customer\"`, `\"salesorder\"`, `\"customrecord_myrec\"`\n- `external_id` (required) -- External ID value (letters, numbers, underscore, hyphen only)\n- `body` (required) -- JSON object matching the record schema; include mandatory fields when creating\n\n**Example:**\n```\nTool: NETSUITE_UPSERT_RECORD_BY_EXTERNAL_ID\nArguments:\n  record_type: \"customer\"\n  external_id: \"CRM-CUST-42\"\n  body: {\n    \"companyName\": \"Acme Corp\",\n    \"subsidiary\": {\"id\": \"1\"},\n    \"email\": \"updated@acme.com\"\n  }\n```\n\n> **Warning:** Idempotency depends on consistent external ID usage. Mismatches silently create additional records instead of updating.\n\n---\n\n### 5. Inspect Record Metadata\n\nDiscover available fields, data types, constraints, and requirements before creating or updating records.\n\n**Tool:** `NETSUITE_GET_RECORD_METADATA`\n\n**Key Parameters:**\n- `record_type` (required) -- e.g., `\"customer\"`, `\"salesorder\"`, `\"invoice\"`, `\"vendor\"`, `\"employee\"`, `\"item\"`\n- `accept` -- `\"application\u002Fschema+json\"` (default, JSON Schema) or `\"application\u002Fswagger+json\"` (OpenAPI 3.0)\n\n**Example:**\n```\nTool: NETSUITE_GET_RECORD_METADATA\nArguments:\n  record_type: \"salesorder\"\n```\n\n---\n\n### 6. List and Filter Records\n\nRetrieve multiple records with optional filtering and pagination.\n\n**Tool:** `NETSUITE_LIST_RECORDS`\n\n**Key Parameters:**\n- `recordType` (required) -- e.g., `\"customer\"`, `\"salesorder\"`\n- `q` -- Filter expression using N\u002Fquery operators, e.g., `\"email START_WITH \\\"barbara\\\"\"`\n- `limit` -- Max records per page (1--1000, default 1000)\n- `offset` -- Zero-based index (must be divisible by limit)\n\n**Supporting Tools:**\n- `NETSUITE_FILTER_RECORD_COLLECTION` -- Alternative filtering (secondary to SuiteQL)\n- `NETSUITE_GET_RECORD_SELECTED_FIELDS` -- Retrieve specific fields only (reduced payload)\n\n---\n\n## Recommended Execution Plan\n\n1. **Inspect the record schema** using `NETSUITE_GET_RECORD_METADATA` to discover required fields\n2. **Search for existing records** using `NETSUITE_RUN_SUITEQL_QUERY` to avoid duplicates\n3. **Look up customer** by email using SuiteQL; fetch details with `NETSUITE_GET_CUSTOMER` if found\n4. **Create customer if needed** using `NETSUITE_CREATE_CUSTOMER` (ensure `subsidiary` is set)\n5. **Validate item internal IDs** using `NETSUITE_LIST_RECORDS` or SuiteQL\n6. **Create the sales order** using `NETSUITE_CREATE_SALES_ORDER` with validated references\n7. **Optionally upsert by external ID** using `NETSUITE_UPSERT_RECORD_BY_EXTERNAL_ID` for sync workflows\n8. **Verify results** using `NETSUITE_GET_RECORD_SELECTED_FIELDS` to confirm pricing\u002Ftotals\n\n---\n\n## Known Pitfalls\n\n| Pitfall | Detail |\n|---------|--------|\n| **Invalid item IDs** | `NETSUITE_CREATE_SALES_ORDER` throws USER_ERROR when item internal ID is invalid. Pre-validate via `NETSUITE_LIST_RECORDS` or `NETSUITE_RUN_SUITEQL_QUERY`. |\n| **Missing required fields** | `NETSUITE_CREATE_CUSTOMER` returns 400 when required fields (e.g., `subsidiary`) are missing. Always inspect with `NETSUITE_GET_RECORD_METADATA` first. |\n| **SuiteQL field names** | Query differences by account can cause empty results. Confirm field names via `NETSUITE_GET_RECORD_METADATA` when results look wrong. |\n| **Filter expression limits** | `NETSUITE_FILTER_RECORD_COLLECTION` may fail if filter syntax is unsupported. Treat as secondary to SuiteQL. |\n| **External ID idempotency** | `NETSUITE_UPSERT_RECORD_BY_EXTERNAL_ID` depends on consistent external IDs. Mismatches silently create duplicates instead of updating. |\n| **SuiteTax line items** | Accounts with SuiteTax enabled require `taxcode` on every line item. Omitting it causes creation failures. |\n\n---\n\n## Quick Reference\n\n| Tool Slug | Description |\n|-----------|-------------|\n| `NETSUITE_CREATE_SALES_ORDER` | Create a new sales order with line items |\n| `NETSUITE_RUN_SUITEQL_QUERY` | Execute ad-hoc SuiteQL queries with paging |\n| `NETSUITE_CREATE_CUSTOMER` | Create a new customer record |\n| `NETSUITE_GET_CUSTOMER` | Retrieve a customer by internal ID |\n| `NETSUITE_UPDATE_CUSTOMER` | Update an existing customer (PATCH) |\n| `NETSUITE_UPSERT_RECORD_BY_EXTERNAL_ID` | Create or update a record by external ID |\n| `NETSUITE_GET_RECORD_METADATA` | Inspect record schema and field definitions |\n| `NETSUITE_LIST_RECORDS` | List records with filtering and pagination |\n| `NETSUITE_FILTER_RECORD_COLLECTION` | Alternative record filtering |\n| `NETSUITE_GET_RECORD_SELECTED_FIELDS` | Retrieve specific fields from a record |\n\n---\n\n*Powered by [Composio](https:\u002F\u002Fcomposio.dev)*\n","# NetSuite Automation\n\nAutomate Oracle NetSuite ERP operations including creating customers and sales orders, running SuiteQL queries, upserting records by external ID, and inspecting record metadata for comprehensive business management.\n\n**Toolkit docs:** [composio.dev\u002Ftoolkits\u002Fnetsuite](https:\u002F\u002Fcomposio.dev\u002Ftoolkits\u002Fnetsuite)\n\n---\n\n## Setup\n\nThis skill requires the **Rube MCP server** connected at `https:\u002F\u002Frube.app\u002Fmcp`.\n\nBefore executing any tools, ensure an active connection exists for the `netsuite` toolkit. If no connection is active, initiate one via `RUBE_MANAGE_CONNECTIONS`.\n\n---\n\n## Core Workflows\n\n### 1. Create Sales Orders\n\nCreate customer orders with line items including item references, quantities, and pricing.\n\n**Tool:** `NETSUITE_CREATE_SALES_ORDER`\n\n**Key Parameters:**\n- `entity` (required) -- Customer reference: `{\"id\": \"\u003Cinternal_id>\"}`\n- `item` (required) -- Container with `items` array, each containing:\n  - `item` (required) -- Item reference: `{\"id\": \"\u003Cinternal_id>\"}`\n  - `quantity` (required) -- Units to order (non-negative)\n  - `rate` -- Unit price (optional if item has default pricing)\n  - `amount` -- Total line amount (alternative to rate)\n  - `taxcode` -- Tax code reference: `{\"id\": \"\u003Cinternal_id>\"}` (required if SuiteTax enabled)\n  - `description` -- Line item notes\n- `tranDate` -- Transaction date in `YYYY-MM-DD` format\n- `memo` -- Header memo\n- `orderStatus` -- `\"A\"` (Pending Approval) or `\"B\"` (Pending Fulfillment)\n- `otherrefnum` -- External reference or PO number\n\n**Example:**\n```\nTool: NETSUITE_CREATE_SALES_ORDER\nArguments:\n  entity: {\"id\": \"1234\"}\n  item: {\n    \"items\": [\n      {\"item\": {\"id\": \"56\"}, \"quantity\": 10, \"rate\": 25.00},\n      {\"item\": {\"id\": \"78\"}, \"quantity\": 5, \"rate\": 50.00}\n    ]\n  }\n  tranDate: \"2026-02-11\"\n  memo: \"Q1 bulk order\"\n  orderStatus: \"B\"\n```\n\n---\n\n### 2. Run SuiteQL Queries\n\nExecute ad-hoc SQL queries against NetSuite data with server-side paging.\n\n**Tool:** `NETSUITE_RUN_SUITEQL_QUERY`\n\n**Key Parameters:**\n- `q` (required) -- SuiteQL SELECT statement\n- `limit` -- Rows per page (default varies)\n- `offset` -- Zero-based index of first row (must be a multiple of `limit`)\n\n**Examples:**\n```\nTool: NETSUITE_RUN_SUITEQL_QUERY\nArguments:\n  q: \"SELECT id, companyname, email FROM customer WHERE isinactive = 'F' ORDER BY companyname\"\n  limit: 100\n  offset: 0\n```\n\n```\nTool: NETSUITE_RUN_SUITEQL_QUERY\nArguments:\n  q: \"SELECT id, entitystatus, total FROM transaction WHERE type = 'SalesOrd' AND trandate >= '2026-01-01'\"\n  limit: 50\n```\n\n---\n\n### 3. Create and Manage Customers\n\nCreate new customer records with subsidiary assignment and contact details.\n\n**Tools:**\n- `NETSUITE_CREATE_CUSTOMER` -- Create a new customer\n- `NETSUITE_GET_CUSTOMER` -- Retrieve customer by internal ID\n- `NETSUITE_UPDATE_CUSTOMER` -- Update existing customer (PATCH semantics)\n\n**Key Parameters for `NETSUITE_CREATE_CUSTOMER`:**\n- `body` (required) -- JSON object with customer data. Required fields:\n  - `subsidiary` -- Object with `id` (subsidiary internal ID)\n  - Either `companyName` (for businesses) or `firstName` + `lastName` (for individuals)\n  - Optional: `email`, `phone`, `isPerson` (set to `\"T\"` for individuals), `comments`\n- `replace` -- Comma-separated sublist names to fully replace (e.g., `\"contacts,addressbook\"`)\n\n**Example:**\n```\nTool: NETSUITE_CREATE_CUSTOMER\nArguments:\n  body: {\n    \"companyName\": \"Acme Corp\",\n    \"subsidiary\": {\"id\": \"1\"},\n    \"email\": \"info@acme.com\",\n    \"phone\": \"555-0100\"\n  }\n```\n\n---\n\n### 4. Upsert Records by External ID\n\nCreate or update records idempotently using an external identifier. Essential for sync workflows.\n\n**Tool:** `NETSUITE_UPSERT_RECORD_BY_EXTERNAL_ID`\n\n**Key Parameters:**\n- `record_type` (required) -- Record type name, e.g., `\"customer\"`, `\"salesorder\"`, `\"customrecord_myrec\"`\n- `external_id` (required) -- External ID value (letters, numbers, underscore, hyphen only)\n- `body` (required) -- JSON object matching the record schema; include mandatory fields when creating\n\n**Example:**\n```\nTool: NETSUITE_UPSERT_RECORD_BY_EXTERNAL_ID\nArguments:\n  record_type: \"customer\"\n  external_id: \"CRM-CUST-42\"\n  body: {\n    \"companyName\": \"Acme Corp\",\n    \"subsidiary\": {\"id\": \"1\"},\n    \"email\": \"updated@acme.com\"\n  }\n```\n\n> **Warning:** Idempotency depends on consistent external ID usage. Mismatches silently create additional records instead of updating.\n\n---\n\n### 5. Inspect Record Metadata\n\nDiscover available fields, data types, constraints, and requirements before creating or updating records.\n\n**Tool:** `NETSUITE_GET_RECORD_METADATA`\n\n**Key Parameters:**\n- `record_type` (required) -- e.g., `\"customer\"`, `\"salesorder\"`, `\"invoice\"`, `\"vendor\"`, `\"employee\"`, `\"item\"`\n- `accept` -- `\"application\u002Fschema+json\"` (default, JSON Schema) or `\"application\u002Fswagger+json\"` (OpenAPI 3.0)\n\n**Example:**\n```\nTool: NETSUITE_GET_RECORD_METADATA\nArguments:\n  record_type: \"salesorder\"\n```\n\n---\n\n### 6. List and Filter Records\n\nRetrieve multiple records with optional filtering and pagination.\n\n**Tool:** `NETSUITE_LIST_RECORDS`\n\n**Key Parameters:**\n- `recordType` (required) -- e.g., `\"customer\"`, `\"salesorder\"`\n- `q` -- Filter expression using N\u002Fquery operators, e.g., `\"email START_WITH \\\"barbara\\\"\"`\n- `limit` -- Max records per page (1--1000, default 1000)\n- `offset` -- Zero-based index (must be divisible by limit)\n\n**Supporting Tools:**\n- `NETSUITE_FILTER_RECORD_COLLECTION` -- Alternative filtering (secondary to SuiteQL)\n- `NETSUITE_GET_RECORD_SELECTED_FIELDS` -- Retrieve specific fields only (reduced payload)\n\n---\n\n## Recommended Execution Plan\n\n1. **Inspect the record schema** using `NETSUITE_GET_RECORD_METADATA` to discover required fields\n2. **Search for existing records** using `NETSUITE_RUN_SUITEQL_QUERY` to avoid duplicates\n3. **Look up customer** by email using SuiteQL; fetch details with `NETSUITE_GET_CUSTOMER` if found\n4. **Create customer if needed** using `NETSUITE_CREATE_CUSTOMER` (ensure `subsidiary` is set)\n5. **Validate item internal IDs** using `NETSUITE_LIST_RECORDS` or SuiteQL\n6. **Create the sales order** using `NETSUITE_CREATE_SALES_ORDER` with validated references\n7. **Optionally upsert by external ID** using `NETSUITE_UPSERT_RECORD_BY_EXTERNAL_ID` for sync workflows\n8. **Verify results** using `NETSUITE_GET_RECORD_SELECTED_FIELDS` to confirm pricing\u002Ftotals\n\n---\n\n## Known Pitfalls\n\n| Pitfall | Detail |\n|---------|--------|\n| **Invalid item IDs** | `NETSUITE_CREATE_SALES_ORDER` throws USER_ERROR when item internal ID is invalid. Pre-validate via `NETSUITE_LIST_RECORDS` or `NETSUITE_RUN_SUITEQL_QUERY`. |\n| **Missing required fields** | `NETSUITE_CREATE_CUSTOMER` returns 400 when required fields (e.g., `subsidiary`) are missing. Always inspect with `NETSUITE_GET_RECORD_METADATA` first. |\n| **SuiteQL field names** | Query differences by account can cause empty results. Confirm field names via `NETSUITE_GET_RECORD_METADATA` when results look wrong. |\n| **Filter expression limits** | `NETSUITE_FILTER_RECORD_COLLECTION` may fail if filter syntax is unsupported. Treat as secondary to SuiteQL. |\n| **External ID idempotency** | `NETSUITE_UPSERT_RECORD_BY_EXTERNAL_ID` depends on consistent external IDs. Mismatches silently create duplicates instead of updating. |\n| **SuiteTax line items** | Accounts with SuiteTax enabled require `taxcode` on every line item. Omitting it causes creation failures. |\n\n---\n\n## Quick Reference\n\n| Tool Slug | Description |\n|-----------|-------------|\n| `NETSUITE_CREATE_SALES_ORDER` | Create a new sales order with line items |\n| `NETSUITE_RUN_SUITEQL_QUERY` | Execute ad-hoc SuiteQL queries with paging |\n| `NETSUITE_CREATE_CUSTOMER` | Create a new customer record |\n| `NETSUITE_GET_CUSTOMER` | Retrieve a customer by internal ID |\n| `NETSUITE_UPDATE_CUSTOMER` | Update an existing customer (PATCH) |\n| `NETSUITE_UPSERT_RECORD_BY_EXTERNAL_ID` | Create or update a record by external ID |\n| `NETSUITE_GET_RECORD_METADATA` | Inspect record schema and field definitions |\n| `NETSUITE_LIST_RECORDS` | List records with filtering and pagination |\n| `NETSUITE_FILTER_RECORD_COLLECTION` | Alternative record filtering |\n| `NETSUITE_GET_RECORD_SELECTED_FIELDS` | Retrieve specific fields from a record |\n\n---\n\n*Powered by [Composio](https:\u002F\u002Fcomposio.dev)*\n",{"name":5,"requires":41,"description":7},{"mcp":42},[43],"rube","master","dff58085da947e81e8418c922055644bf0082b1b","development\u002Fcomposio-netsuite-automation","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills","https:\u002F\u002Fgithub.com\u002Freikiplanet","https:\u002F\u002Fwww.reiki-planet.com","Reiki Planet Game","2026-03-29 06:02:29",{"source":8,"skillName":5,"commands":53,"prompt":63,"zipAvailable":64},[54,57,60],{"tool":55,"command":56},"npx","npx skills add reikiplanet\u002Fdaoskills --skill \"NetSuite Automation\"",{"tool":58,"command":59},"bunx","bunx skills add reikiplanet\u002Fdaoskills --skill \"NetSuite Automation\"",{"tool":61,"command":62},"pnpm","pnpm dlx skills add reikiplanet\u002Fdaoskills --skill \"NetSuite Automation\"","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fdevelopment\u002Fcomposio-netsuite-automation\u002FSKILL.md",true,[],[67,94,106,121,140,163],{"skillNo":68,"name":69,"nameZh":6,"description":70,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":73,"publishedAt":36},"01M6G614JTEQJHPT8AKK3YQ18S","web-games","Web browser game development principles. Framework selection, WebGPU, optimization, PWA.","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fweb-games\u002FSKILL.md",[],[74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93],"games","web games","web","grep","principles","selection","community","framework selection","edit","write","read","pwa","game","web browser","game development","Optimization","framework","browser","development","webgpu",{"skillNo":95,"name":96,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":100,"publishedAt":36},"01M6G611H2YGV0GZFP90D38ZMJ","vr-ar","VR\u002FAR development principles. Comfort, interaction, performance requirements.","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fvr-ar\u002FSKILL.md",[],[101,102,92,103,104,80,82,83,84,77,105,78],"ar","vr ar","interaction","requirements","performance",{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":112,"publishedAt":36},"01M6G60XNMHAMV1SV0EJ1CX0AY","templates","Project scaffolding templates for new applications. Use when creating new projects from scratch. Contains 12 templates for various tech stacks.","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Ftemplates\u002FSKILL.md",[],[108,113,114,115,116,117,80,118,84,119,120,77],"project scaffolding","From Scratch","tech","project","scaffolding","use","projects","applications",{"skillNo":122,"name":123,"nameZh":6,"description":124,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":125,"categories":126,"keywords":127,"publishedAt":36},"01M6G60T0GATMK3Q5H8GDC1Z8S","wcag-audit-patterns","Conduct WCAG 2.2 accessibility audits with automated testing, manual verification, and remediation guidance. Use when auditing websites for accessibility, fixing WCAG violations, or implementing ac...","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fskills\u002Fsecurity\u002Fwcag-audit-patterns\u002FSKILL.md",[],[128,129,130,131,132,80,133,35,134,135,118,136,137,138,139],"wcag audit patterns","wcag audit","patterns","WCAG","audit","manual","automated testing","guidance","remediation","verification","accessibility","testing",{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":146,"publishedAt":36},"01M6G60PMCHW1FRZ63F931QK3R","vulnerability-scanner","Advanced vulnerability analysis principles. OWASP 2025, Supply Chain Security, attack surface mapping, risk prioritization.","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fskills\u002Fsecurity\u002Fvulnerability-scanner\u002FSKILL.md",[],[147,148,149,150,151,152,153,154,80,84,77,155,78,156,157,158,159,160,161,162],"scanner","vulnerability scanner","vulnerability","prioritization","2025","mapping","chain","supply chain","Bash","analysis","risk","owasp","supply chain security","security","supply","advanced",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":169,"publishedAt":36},"01M6G60JZBB8DK0W3DSG1WNMZK","threat-modeling-expert","Expert in threat modeling methodologies, security architecture review, and risk assessment. Masters STRIDE, PASTA, attack trees, and security requirement extraction. Use for security architecture r...","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fskills\u002Fsecurity\u002Fthreat-modeling-expert\u002FSKILL.md",[],[170,171,172,173,174,175,176,177,160,118,178,179,180,80,181,182,183,157,184,185],"modeling","threat modeling expert","threat modeling","expert","threat","risk assessment","architecture review","architecture","security architecture review","trees","security architecture","security requirement extraction","assessment","extraction","review","stride"]