[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7EBMP9QZTY6XHFRJJ53DDEV":3,"skill-same:01M7EBMP9QZTY6XHFRJJ53DDEV":57},{"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":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":27,"commitSha":28,"skillDirectory":29,"forksCount":30,"repositoryHtmlUrl":31,"repositoryHomepageUrl":32,"ownerHtmlUrl":33,"ownerBlogUrl":34,"ownerDescription":35,"updatedAt":36,"install":37,"resources":50},"01M7EBMP9QZTY6XHFRJJ53DDEV","airtable-filters",null,"Use this skill when the user wants to find, filter, or narrow down Airtable records by field values, even when they don't explicitly say \"filter.\"","kael-odin\u002Fcodex-plugins-zh","kael-odin","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F166499071?v=4","01M7EBHJT87XN88WT3PEQ8ZGZK","Kael Odin","01M7EBHJVC91GD7PGJN3ZB14SG",37,"MIT","https:\u002F\u002Fgithub.com\u002Fkael-odin\u002Fcodex-plugins-zh\u002Fblob\u002Fmain\u002Fplugins\u002Fairtable\u002Fskills\u002Fairtable-filters\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: airtable-filters\ndescription: Use this skill when the user wants to find, filter, or narrow down Airtable records by field values, even when they don't explicitly say \"filter.\"\nlicense: MIT\nmetadata:\n  version: '1.0.0'\n  author: airtable\n---\n\n# Airtable MCP Filters\n\nMCP tools that list or display records from tables or interface pages accept an optional `filters` parameter, using the same schema.\n\nWhen querying records from an interface page, these filters are combined with the page's built-in filters using AND.\n\n## Schema shape\n\nWhen no top-level `operator` is specified, conditions are combined with AND. The first element in a condition's `operands` array is always a **field ID** — look up the table's schema to find field IDs before filtering.\n\n## Field type categories\n\n-   **Text-like**: singleLineText, multilineText, email, url, phoneNumber, richText, barcode\n-   **Numeric**: number, percent, currency, rating, duration, autoNumber, count\n-   **Date**: date, dateTime, createdTime, lastModifiedTime\n-   **Single select**: singleSelect\n-   **Multiple selects**: multipleSelects\n-   **Single collaborator**: singleCollaborator\n-   **Multiple collaborators**: multipleCollaborators\n-   **Linked records**: multipleRecordLinks\n-   **Attachment**: multipleAttachments\n-   **Checkbox**: checkbox\n\nComputed fields (formula, rollup, lookup) support whichever operators match their result type.\n\n## Comparison operators\n\n| Operator                | Second operand                     | Field categories                                                                                                                   |\n| ----------------------- | ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |\n| `=`                     | string, number, boolean, choice ID | text-like, numeric, date, checkbox, single select, multiple selects, single collaborator, multiple collaborators, linked records   |\n| `!=`                    | string, number, choice ID          | text-like, numeric, date, single select, single collaborator                                                                       |\n| `\u003C`, `>`, `\u003C=`, `>=`    | number or date value object        | numeric, date                                                                                                                      |\n| `contains`              | string                             | text-like, linked records                                                                                                          |\n| `doesNotContain`        | string                             | text-like, linked records                                                                                                          |\n| `doesNotContain`        | array of IDs                       | multiple selects, multiple collaborators                                                                                           |\n| `isEmpty`, `isNotEmpty` | _(none)_                           | text-like, numeric, date, single select, multiple selects, single collaborator, multiple collaborators, linked records, attachment |\n| `hasAnyOf`, `hasAllOf`  | array of IDs                       | multiple selects, multiple collaborators, linked records                                                                           |\n| `isAnyOf`               | array of IDs                       | single select, single collaborator                                                                                                 |\n| `isNoneOf`              | array of IDs                       | single select, single collaborator, linked records                                                                                 |\n| `isWithin`              | date range object                  | date                                                                                                                               |\n| `filename`, `fileType`  | string or `\"image\"`\u002F`\"text\"`       | attachment                                                                                                                         |\n\nWhen matching a field against multiple values, prefer dedicated operators (`isAnyOf`, `isNoneOf`, `hasAnyOf`, `hasAllOf`) over combining multiple `=` conditions with `or`\u002F`and`, when those operators are available for the field type.\n\n## Field-type rules\n\n### Select fields\n\nFor select fields, operand values must be **choice IDs** (e.g., `\"selABCDEFGHIJKLM\"`), not display names. Look up the table's schema to find choice IDs before filtering.\n\n### Collaborator fields\n\nWhen filtering by a collaborator group ID, use `operatorOptions` to match individual members of the group instead of the literal group ID. See the tool's `operatorOptions` parameter for details.\n\nExample operand: `{\"operator\": \"hasAnyOf\", \"operands\": [\"fldCRi9oz2vRLcIWr\", \"ugpDUVUnftA7H9bG8\"], \"operatorOptions\": {\"matchGroupsByMembership\": true}}`\n\n### Attachment fields\n\nUse `fileType` to filter attachments by type (e.g., `\"image\"`, `\"text\"`) rather than `isNotEmpty` when the user specifies a file type.\n\n### Date fields\n\nDate comparisons (`=`, `!=`, `\u003C`, `>`, `\u003C=`, `>=`) use a date value object instead of a raw date string, and `isWithin` uses a date range object. The tool schema defines the available modes for each. Always include `timeZone`.\n\n## Composing conditions\n\nA filter's top-level operands array can contain two or more conditions, which are combined with the top-level operator (AND by default). For simple multi-condition filters, this flat structure is sufficient.\n\nWhen the logic requires mixing AND and OR, nest a filter object as one of the operands. Each nested filter has its own operator and operands.\n\n**OR inside AND** — useful when one condition is fixed and another allows multiple alternatives:\n\n> \"Scripted videos that are either in Writing or Pre-Production\"\n> → Bucket = Scripted AND (Status = Writing OR Status = Pre-Production)\n\n**AND inside OR** — useful when you want records matching either a simple condition or a combination:\n\n> \"Approved videos, or videos assigned to Bailey that are in Cut 2\"\n> → Status = Approved OR (Editor = Bailey AND Status = Cut 2 Ready)\n\nWhen combining many conditions on different fields, prefer a flat AND rather than unnecessary nesting. Only nest when the logic genuinely requires mixed AND\u002FOR at different levels.\n\nPrefer composing all conditions into a single `filters` object rather than splitting them across multiple calls. A single call with a composed filter is more efficient and returns the correct result set directly.\n\n## Examples\n\nFilter where a text field equals \"orange\" OR a number field is greater than 5:\n\n```json\n{\n    \"operator\": \"or\",\n    \"operands\": [\n        {\"operator\": \"=\", \"operands\": [\"fld8WsrpLHHevsnW8\", \"orange\"]},\n        {\"operator\": \">\", \"operands\": [\"fldulcCPDVz87Bmnw\", 5]}\n    ]\n}\n```\n\nFilter for records where a date field is within the past week:\n\n```json\n{\n    \"operands\": [\n        {\n            \"operator\": \"isWithin\",\n            \"operands\": [\"fldABC12345678x\", {\"mode\": \"pastWeek\", \"timeZone\": \"America\u002FNew_York\"}]\n        }\n    ]\n}\n```\n","# Airtable MCP Filters\n\nMCP tools that list or display records from tables or interface pages accept an optional `filters` parameter, using the same schema.\n\nWhen querying records from an interface page, these filters are combined with the page's built-in filters using AND.\n\n## Schema shape\n\nWhen no top-level `operator` is specified, conditions are combined with AND. The first element in a condition's `operands` array is always a **field ID** — look up the table's schema to find field IDs before filtering.\n\n## Field type categories\n\n-   **Text-like**: singleLineText, multilineText, email, url, phoneNumber, richText, barcode\n-   **Numeric**: number, percent, currency, rating, duration, autoNumber, count\n-   **Date**: date, dateTime, createdTime, lastModifiedTime\n-   **Single select**: singleSelect\n-   **Multiple selects**: multipleSelects\n-   **Single collaborator**: singleCollaborator\n-   **Multiple collaborators**: multipleCollaborators\n-   **Linked records**: multipleRecordLinks\n-   **Attachment**: multipleAttachments\n-   **Checkbox**: checkbox\n\nComputed fields (formula, rollup, lookup) support whichever operators match their result type.\n\n## Comparison operators\n\n| Operator                | Second operand                     | Field categories                                                                                                                   |\n| ----------------------- | ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |\n| `=`                     | string, number, boolean, choice ID | text-like, numeric, date, checkbox, single select, multiple selects, single collaborator, multiple collaborators, linked records   |\n| `!=`                    | string, number, choice ID          | text-like, numeric, date, single select, single collaborator                                                                       |\n| `\u003C`, `>`, `\u003C=`, `>=`    | number or date value object        | numeric, date                                                                                                                      |\n| `contains`              | string                             | text-like, linked records                                                                                                          |\n| `doesNotContain`        | string                             | text-like, linked records                                                                                                          |\n| `doesNotContain`        | array of IDs                       | multiple selects, multiple collaborators                                                                                           |\n| `isEmpty`, `isNotEmpty` | _(none)_                           | text-like, numeric, date, single select, multiple selects, single collaborator, multiple collaborators, linked records, attachment |\n| `hasAnyOf`, `hasAllOf`  | array of IDs                       | multiple selects, multiple collaborators, linked records                                                                           |\n| `isAnyOf`               | array of IDs                       | single select, single collaborator                                                                                                 |\n| `isNoneOf`              | array of IDs                       | single select, single collaborator, linked records                                                                                 |\n| `isWithin`              | date range object                  | date                                                                                                                               |\n| `filename`, `fileType`  | string or `\"image\"`\u002F`\"text\"`       | attachment                                                                                                                         |\n\nWhen matching a field against multiple values, prefer dedicated operators (`isAnyOf`, `isNoneOf`, `hasAnyOf`, `hasAllOf`) over combining multiple `=` conditions with `or`\u002F`and`, when those operators are available for the field type.\n\n## Field-type rules\n\n### Select fields\n\nFor select fields, operand values must be **choice IDs** (e.g., `\"selABCDEFGHIJKLM\"`), not display names. Look up the table's schema to find choice IDs before filtering.\n\n### Collaborator fields\n\nWhen filtering by a collaborator group ID, use `operatorOptions` to match individual members of the group instead of the literal group ID. See the tool's `operatorOptions` parameter for details.\n\nExample operand: `{\"operator\": \"hasAnyOf\", \"operands\": [\"fldCRi9oz2vRLcIWr\", \"ugpDUVUnftA7H9bG8\"], \"operatorOptions\": {\"matchGroupsByMembership\": true}}`\n\n### Attachment fields\n\nUse `fileType` to filter attachments by type (e.g., `\"image\"`, `\"text\"`) rather than `isNotEmpty` when the user specifies a file type.\n\n### Date fields\n\nDate comparisons (`=`, `!=`, `\u003C`, `>`, `\u003C=`, `>=`) use a date value object instead of a raw date string, and `isWithin` uses a date range object. The tool schema defines the available modes for each. Always include `timeZone`.\n\n## Composing conditions\n\nA filter's top-level operands array can contain two or more conditions, which are combined with the top-level operator (AND by default). For simple multi-condition filters, this flat structure is sufficient.\n\nWhen the logic requires mixing AND and OR, nest a filter object as one of the operands. Each nested filter has its own operator and operands.\n\n**OR inside AND** — useful when one condition is fixed and another allows multiple alternatives:\n\n> \"Scripted videos that are either in Writing or Pre-Production\"\n> → Bucket = Scripted AND (Status = Writing OR Status = Pre-Production)\n\n**AND inside OR** — useful when you want records matching either a simple condition or a combination:\n\n> \"Approved videos, or videos assigned to Bailey that are in Cut 2\"\n> → Status = Approved OR (Editor = Bailey AND Status = Cut 2 Ready)\n\nWhen combining many conditions on different fields, prefer a flat AND rather than unnecessary nesting. Only nest when the logic genuinely requires mixed AND\u002FOR at different levels.\n\nPrefer composing all conditions into a single `filters` object rather than splitting them across multiple calls. A single call with a composed filter is more efficient and returns the correct result set directly.\n\n## Examples\n\nFilter where a text field equals \"orange\" OR a number field is greater than 5:\n\n```json\n{\n    \"operator\": \"or\",\n    \"operands\": [\n        {\"operator\": \"=\", \"operands\": [\"fld8WsrpLHHevsnW8\", \"orange\"]},\n        {\"operator\": \">\", \"operands\": [\"fldulcCPDVz87Bmnw\", 5]}\n    ]\n}\n```\n\nFilter for records where a date field is within the past week:\n\n```json\n{\n    \"operands\": [\n        {\n            \"operator\": \"isWithin\",\n            \"operands\": [\"fldABC12345678x\", {\"mode\": \"pastWeek\", \"timeZone\": \"America\u002FNew_York\"}]\n        }\n    ]\n}\n```\n",{"name":5,"license":15,"metadata":24,"description":7},{"author":25,"version":26},"airtable","1.0.0","main","e3091d1b371a9dcd9455d333175f948b286fdfcf","plugins\u002Fairtable\u002Fskills\u002Fairtable-filters",1,"https:\u002F\u002Fgithub.com\u002Fkael-odin\u002Fcodex-plugins-zh","https:\u002F\u002Fkael-odin.github.io\u002Fcodex-plugins-zh\u002F","https:\u002F\u002Fgithub.com\u002Fkael-odin","https:\u002F\u002Fkael-odin.github.io\u002Fodin-valhalla\u002F","Full-stack development • Open-source • System engineering\r\nTurning ideas into repositories.","2026-11-08 17:05:36",{"source":8,"skillName":5,"commands":38,"prompt":48,"zipAvailable":49},[39,42,45],{"tool":40,"command":41},"npx","npx skills add kael-odin\u002Fcodex-plugins-zh --skill airtable-filters",{"tool":43,"command":44},"bunx","bunx skills add kael-odin\u002Fcodex-plugins-zh --skill airtable-filters",{"tool":46,"command":47},"pnpm","pnpm dlx skills add kael-odin\u002Fcodex-plugins-zh --skill airtable-filters","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fkael-odin\u002Fcodex-plugins-zh\u002Fblob\u002Fmain\u002Fplugins\u002Fairtable\u002Fskills\u002Fairtable-filters\u002FSKILL.md",true,[51],{"path":52,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":55,"sourceHtmlUrl":56},"agents\u002Fopenai.yaml","REFERENCE","参考文档",247,"https:\u002F\u002Fgithub.com\u002Fkael-odin\u002Fcodex-plugins-zh\u002Fblob\u002Fmain\u002Fplugins\u002Fairtable\u002Fskills\u002Fairtable-filters\u002Fagents\u002Fopenai.yaml",[58,67,74,82,89,96],{"skillNo":59,"name":60,"nameZh":6,"description":61,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":62,"licenseFileUrl":63,"sourceHtmlUrl":64,"categories":65,"keywords":66,"publishedAt":19},"01M7EDVCKB89EF755PQMKV1BZA","android-emulator-qa","Use when validating Android feature flows in an emulator with adb-driven launch, input, UI-tree inspection, screenshots, and logcat capture.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fkael-odin\u002Fcodex-plugins-zh\u002Fblob\u002Fmain\u002Fplugins\u002Ftest-android-apps\u002Fskills\u002Fandroid-emulator-qa\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fkael-odin\u002Fcodex-plugins-zh\u002Fblob\u002Fmain\u002Fplugins\u002Ftest-android-apps\u002Fskills\u002Fandroid-emulator-qa\u002FSKILL.md",[],[],{"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":19},"01M7EDPX7WHN6HQZ0QKWB0BGVZ","supabase-postgres-best-practices","Postgres performance optimization and best practices from Supabase. Use this skill when writing, reviewing, or optimizing Postgres queries, schema designs, or database configurations.","https:\u002F\u002Fgithub.com\u002Fkael-odin\u002Fcodex-plugins-zh\u002Fblob\u002Fmain\u002Fplugins\u002Fsupabase\u002Fskills\u002Fsupabase-postgres-best-practices\u002FSKILL.md",[],[],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":62,"licenseFileUrl":78,"sourceHtmlUrl":79,"categories":80,"keywords":81,"publishedAt":19},"01M7EDHHD98T8ZH09F40Q973G3","sentry","Use when the user asks to inspect Sentry issues or events, summarize recent production errors, or pull basic Sentry health data via the Sentry API; perform read-only queries with the bundled script and require `SENTRY_AUTH_TOKEN`.","https:\u002F\u002Fgithub.com\u002Fkael-odin\u002Fcodex-plugins-zh\u002Fblob\u002Fmain\u002Fplugins\u002Fsentry\u002Fskills\u002Fsentry\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fkael-odin\u002Fcodex-plugins-zh\u002Fblob\u002Fmain\u002Fplugins\u002Fsentry\u002Fskills\u002Fsentry\u002FSKILL.md",[],[],{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":88,"publishedAt":19},"01M7EDH3SGVMS1AFS6Q40B5J48","render-workflows","搭建、开发、测试和部署 Render Workflows。涵盖首次脚手架搭建（通过 CLI 或手动方式）、SDK 安装（Python 或 TypeScript）、任务模式（重试、子任务、扇出）、本地开发、控制台部署和故障排查。适用于用户首次搭建 Render Workflows、构建工作流服务、添加或修改工作流任务、本地测试工作流或部署到 Render 的场景。","https:\u002F\u002Fgithub.com\u002Fkael-odin\u002Fcodex-plugins-zh\u002Fblob\u002Fmain\u002Fplugins\u002Frender\u002Fskills\u002Frender-workflows\u002FSKILL.md",[],[],{"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":95,"publishedAt":19},"01M7EDH0CYEKQ4VVARHZAQ43S8","render-web-services","配置 Render web service——端口绑定、TLS、健康检查、自定义域名、自动部署、PR 预览、持久化磁盘及部署生命周期。当用户需要搭建 web service、修复健康检查失败、添加自定义域名、配置零停机部署，或排查端口绑定问题时使用。","https:\u002F\u002Fgithub.com\u002Fkael-odin\u002Fcodex-plugins-zh\u002Fblob\u002Fmain\u002Fplugins\u002Frender\u002Fskills\u002Frender-web-services\u002FSKILL.md",[],[],{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":102,"publishedAt":19},"01M7EDGVDYFBG1CKSNMQ2DD336","render-static-sites","在 Render 全球 CDN 上部署并配置静态站点——构建命令、发布路径、SPA 路由、重定向、自定义 header 及 PR 预览。当用户需要部署静态站点、搭建 React\u002FVue\u002FHugo\u002FGatsby 前端、配置 SPA 回退路由、添加重定向规则、自定义响应 header，或在静态站点与 web service 之间为前端做选择时使用。触发词:static site、CDN、SPA、single-page app、React deploy、Vue deploy、Hugo、Gatsby、Docusaurus、Jekyll、staticPublishPath。","https:\u002F\u002Fgithub.com\u002Fkael-odin\u002Fcodex-plugins-zh\u002Fblob\u002Fmain\u002Fplugins\u002Frender\u002Fskills\u002Frender-static-sites\u002FSKILL.md",[],[]]