[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7EWT4MAFFQJAY07FBF7Q2F2":3,"skill-same:01M7EWT4MAFFQJAY07FBF7Q2F2":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":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":27,"commitSha":28,"skillDirectory":29,"forksCount":30,"repositoryHtmlUrl":31,"repositoryHomepageUrl":6,"ownerHtmlUrl":32,"ownerBlogUrl":6,"ownerDescription":33,"updatedAt":34,"install":35,"resources":47},"01M7EWT4MAFFQJAY07FBF7Q2F2","source-connectors",null,"Implement, validate, and troubleshoot Airweave source connectors: decorators, registry metadata, auth\u002Fconfig schemas, browse trees, ACLs, federated search, incremental sync, and source rate limits.","lza6\u002FArmor-piercing-system-prompts","lza6","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F128880206?v=4","01M7EB3K7WPX5T28EJ2NVHE6EG","Chinese-tingfeng","01M7EB3K97E1KQ16QWKJMFNGX8",11,"MIT","https:\u002F\u002Fgithub.com\u002Flza6\u002FArmor-piercing-system-prompts\u002Fblob\u002Fmain\u002F05-技能与代理开发\u002Fairweave\u002Fsub-skills\u002Fsource-connectors\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: source-connectors\ndescription: \"Implement, validate, and troubleshoot Airweave source connectors:\n  decorators, registry metadata, auth\u002Fconfig schemas, browse trees, ACLs,\n  federated search, incremental sync, and source rate limits.\"\nmetadata:\n  disco-role: operating\ndisable-model-invocation: true\nlicense: MIT\n---\n\n# Airweave Source Connectors\n\nUse this sub-skill when a future Airweave task touches connector-facing source classes, source metadata exposed by the registry, auth\u002Fconfig schema behavior, connector validation, browse-tree node selection, access-control extraction, federated search sources, cursor-based incremental sync, or source-specific rate limiting.\n\nDo not use this sub-skill for dashboard UI, Connect widget iframe\u002FOAuth UX, MCP transport, Monke orchestration, or generic backend endpoint lifecycle work. Cross-link to sibling [backend-api](..\u002Fbackend-api\u002FSKILL.md) for source-connection endpoint flows, OAuth verification, search request\u002Fresponse schemas, browse-tree route shapes, and API auth\u002Forg semantics.\n\n## Route to the right reference\n\n- Read [references\u002Fsource-registry.md](references\u002Fsource-registry.md) before adding a source class, changing `@source(...)` metadata, changing registry output, hiding\u002Fshowing feature-flagged sources, or checking entity-definition exposure.\n- Read [references\u002Fauth-and-config.md](references\u002Fauth-and-config.md) before changing auth methods, direct credential schemas, OAuth\u002FBYOC\u002Ftoken-injection handling, auth-provider support, template config fields, source connection validation, or runtime token-provider creation.\n- Read [references\u002Fbrowse-tree.md](references\u002Fbrowse-tree.md) before changing `supports_browse_tree`, lazy browse children, browse-node ID encoding, node-selection persistence, or targeted sync behavior.\n- Read [references\u002Ftroubleshooting.md](references\u002Ftroubleshooting.md) when diagnosing source visibility, auth\u002Fconfig errors, browse-tree selection bugs, ACL over\u002Funder-grants, federated search failures, cursor regressions, source HTTP errors, concurrency issues, or rate-limit behavior.\n\n## Connector operating rules\n\n1. Keep connector identity in one place: the `@source(...)` decorator sets `short_name`, display name, auth methods, config classes, capability flags, labels, feature flag, cursor class, federated-search status, browse-tree support, access-control support, and source rate-limit level.\n2. Preserve the BaseSource v2 contract: `create(*, auth, logger, http_client, config)`, `generate_entities(*, cursor=None, files=None, node_selections=None)`, and `validate()` are the primary connector hooks. Do not add ad-hoc credential or logger setup outside these dependencies.\n3. Use the injected auth provider and `AirweaveHttpClient`. Sources should call `auth.get_token()`, `auth.force_refresh()` when supported, or direct credential models from `DirectCredentialProvider`; external HTTP calls should flow through the injected client so SSRF checks and optional source rate limits apply.\n4. Put public schema fields in typed Pydantic config\u002Fauth models. Use field metadata (`is_secret`, `feature_flag`, `auth_provider_field`, `required_for_auth`, `exclude_from_ui`) deliberately because the registry turns those classes into API-visible `Fields`.\n5. For continuous sync, set both `supports_continuous=True` and `cursor_class=...`; the decorator rejects continuous sources without a cursor class. Update the cursor only with stable, source-owned state and support full-sync fallback when cursor state is absent or invalid.\n6. For federated sources, set `federated_search=True`, implement `search(query, limit)`, and do not pretend full sync exists. Slack intentionally raises from `generate_entities()` because it searches Slack at query time.\n7. For ACL-aware sources, set `supports_access_control=True`, set `entity.access` on yielded entities, and implement `generate_access_control_memberships()` when group expansion is needed. Principal formats must stay compatible with the search broker.\n8. For browse-tree sources, set `supports_browse_tree=True`, implement `get_browse_children(parent_node_id)` and `parse_browse_node_id(node_id)`, and keep emitted node IDs parsable into the metadata needed by targeted sync.\n9. Keep Monke and manual credentialed workflows external. No bundled script is included for this sub-skill: the only relevant source-maintained manual artifact is the SharePoint browse-tree manual test, and it requires real Microsoft tenant credentials and external state.\n\n## Safe validation anchors\n\nWhen a backend Python 3.13 environment with Airweave and pytest is active, prefer connector-owned unit anchors first:\n\n```bash\ncd backend\npython -m pytest tests\u002Funit\u002Fplatform\u002Fsources\u002Ftest_http_helpers.py -q\npython -m pytest tests\u002Funit\u002Fplatform\u002Fsources\u002Ftest_process_entities_concurrent.py -q\npython -m pytest tests\u002Funit\u002Fplatform\u002Fsources\u002Ftest_sharepoint_online_acl.py -q\npython -m pytest tests\u002Funit\u002Fplatform\u002Fsources\u002Ftest_sharepoint_online_group_expansion.py -q\npython -m pytest tests\u002Funit\u002Fplatform\u002Fsources\u002Ftest_sharepoint2019v2.py -q\npython -m pytest tests\u002Funit\u002Fplatform\u002Fsources\u002Ftest_sharepoint2019v2_dirsync.py -q\npython -m pytest tests\u002Funit\u002Fapi\u002Ftest_source_feature_flags.py -q\n```\n\nCredentialed or local-stack E2E anchors are useful but not safe to run unattended: source listing\u002Fdetail, federated search, source rate limits, continuous sync, entity definitions, OAuth\u002Fdirect\u002Fauth-provider\u002Ftoken source-connection variants, and SharePoint legacy DirSync tests are cataloged in [references\u002Ftroubleshooting.md](references\u002Ftroubleshooting.md#validation-anchors).\n\nThe prepared backend inspection facts for this skill were CPU-only: `airweave==0.1.0` imported on Python 3.13.14, connector-relevant imports such as `airweave.schemas.source_connection`, `airweave.platform.sources._base`, and `airweave.platform.decorators` succeeded, no accelerator backend is required for this scope, and settings imports require documented environment variables with sufficiently long `STATE_SECRET` and `SVIX_JWT_SECRET` values.\n","# Airweave Source Connectors\n\nUse this sub-skill when a future Airweave task touches connector-facing source classes, source metadata exposed by the registry, auth\u002Fconfig schema behavior, connector validation, browse-tree node selection, access-control extraction, federated search sources, cursor-based incremental sync, or source-specific rate limiting.\n\nDo not use this sub-skill for dashboard UI, Connect widget iframe\u002FOAuth UX, MCP transport, Monke orchestration, or generic backend endpoint lifecycle work. Cross-link to sibling [backend-api](..\u002Fbackend-api\u002FSKILL.md) for source-connection endpoint flows, OAuth verification, search request\u002Fresponse schemas, browse-tree route shapes, and API auth\u002Forg semantics.\n\n## Route to the right reference\n\n- Read [references\u002Fsource-registry.md](references\u002Fsource-registry.md) before adding a source class, changing `@source(...)` metadata, changing registry output, hiding\u002Fshowing feature-flagged sources, or checking entity-definition exposure.\n- Read [references\u002Fauth-and-config.md](references\u002Fauth-and-config.md) before changing auth methods, direct credential schemas, OAuth\u002FBYOC\u002Ftoken-injection handling, auth-provider support, template config fields, source connection validation, or runtime token-provider creation.\n- Read [references\u002Fbrowse-tree.md](references\u002Fbrowse-tree.md) before changing `supports_browse_tree`, lazy browse children, browse-node ID encoding, node-selection persistence, or targeted sync behavior.\n- Read [references\u002Ftroubleshooting.md](references\u002Ftroubleshooting.md) when diagnosing source visibility, auth\u002Fconfig errors, browse-tree selection bugs, ACL over\u002Funder-grants, federated search failures, cursor regressions, source HTTP errors, concurrency issues, or rate-limit behavior.\n\n## Connector operating rules\n\n1. Keep connector identity in one place: the `@source(...)` decorator sets `short_name`, display name, auth methods, config classes, capability flags, labels, feature flag, cursor class, federated-search status, browse-tree support, access-control support, and source rate-limit level.\n2. Preserve the BaseSource v2 contract: `create(*, auth, logger, http_client, config)`, `generate_entities(*, cursor=None, files=None, node_selections=None)`, and `validate()` are the primary connector hooks. Do not add ad-hoc credential or logger setup outside these dependencies.\n3. Use the injected auth provider and `AirweaveHttpClient`. Sources should call `auth.get_token()`, `auth.force_refresh()` when supported, or direct credential models from `DirectCredentialProvider`; external HTTP calls should flow through the injected client so SSRF checks and optional source rate limits apply.\n4. Put public schema fields in typed Pydantic config\u002Fauth models. Use field metadata (`is_secret`, `feature_flag`, `auth_provider_field`, `required_for_auth`, `exclude_from_ui`) deliberately because the registry turns those classes into API-visible `Fields`.\n5. For continuous sync, set both `supports_continuous=True` and `cursor_class=...`; the decorator rejects continuous sources without a cursor class. Update the cursor only with stable, source-owned state and support full-sync fallback when cursor state is absent or invalid.\n6. For federated sources, set `federated_search=True`, implement `search(query, limit)`, and do not pretend full sync exists. Slack intentionally raises from `generate_entities()` because it searches Slack at query time.\n7. For ACL-aware sources, set `supports_access_control=True`, set `entity.access` on yielded entities, and implement `generate_access_control_memberships()` when group expansion is needed. Principal formats must stay compatible with the search broker.\n8. For browse-tree sources, set `supports_browse_tree=True`, implement `get_browse_children(parent_node_id)` and `parse_browse_node_id(node_id)`, and keep emitted node IDs parsable into the metadata needed by targeted sync.\n9. Keep Monke and manual credentialed workflows external. No bundled script is included for this sub-skill: the only relevant source-maintained manual artifact is the SharePoint browse-tree manual test, and it requires real Microsoft tenant credentials and external state.\n\n## Safe validation anchors\n\nWhen a backend Python 3.13 environment with Airweave and pytest is active, prefer connector-owned unit anchors first:\n\n```bash\ncd backend\npython -m pytest tests\u002Funit\u002Fplatform\u002Fsources\u002Ftest_http_helpers.py -q\npython -m pytest tests\u002Funit\u002Fplatform\u002Fsources\u002Ftest_process_entities_concurrent.py -q\npython -m pytest tests\u002Funit\u002Fplatform\u002Fsources\u002Ftest_sharepoint_online_acl.py -q\npython -m pytest tests\u002Funit\u002Fplatform\u002Fsources\u002Ftest_sharepoint_online_group_expansion.py -q\npython -m pytest tests\u002Funit\u002Fplatform\u002Fsources\u002Ftest_sharepoint2019v2.py -q\npython -m pytest tests\u002Funit\u002Fplatform\u002Fsources\u002Ftest_sharepoint2019v2_dirsync.py -q\npython -m pytest tests\u002Funit\u002Fapi\u002Ftest_source_feature_flags.py -q\n```\n\nCredentialed or local-stack E2E anchors are useful but not safe to run unattended: source listing\u002Fdetail, federated search, source rate limits, continuous sync, entity definitions, OAuth\u002Fdirect\u002Fauth-provider\u002Ftoken source-connection variants, and SharePoint legacy DirSync tests are cataloged in [references\u002Ftroubleshooting.md](references\u002Ftroubleshooting.md#validation-anchors).\n\nThe prepared backend inspection facts for this skill were CPU-only: `airweave==0.1.0` imported on Python 3.13.14, connector-relevant imports such as `airweave.schemas.source_connection`, `airweave.platform.sources._base`, and `airweave.platform.decorators` succeeded, no accelerator backend is required for this scope, and settings imports require documented environment variables with sufficiently long `STATE_SECRET` and `SVIX_JWT_SECRET` values.\n",{"name":5,"license":15,"metadata":24,"description":7,"disable-model-invocation":26},{"disco-role":25},"operating",true,"main","d69096e239f2a89aabc2cd078c47664a9d3b1e11","05-技能与代理开发\u002Fairweave\u002Fsub-skills\u002Fsource-connectors",3,"https:\u002F\u002Fgithub.com\u002Flza6\u002FArmor-piercing-system-prompts","https:\u002F\u002Fgithub.com\u002Flza6","个人vx：Tf00798\r\n个人✈：@TFGY999","2026-10-08 14:29:22",{"source":8,"skillName":5,"commands":36,"prompt":46,"zipAvailable":26},[37,40,43],{"tool":38,"command":39},"npx","npx skills add lza6\u002FArmor-piercing-system-prompts --skill source-connectors",{"tool":41,"command":42},"bunx","bunx skills add lza6\u002FArmor-piercing-system-prompts --skill source-connectors",{"tool":44,"command":45},"pnpm","pnpm dlx skills add lza6\u002FArmor-piercing-system-prompts --skill source-connectors","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Flza6\u002FArmor-piercing-system-prompts\u002Fblob\u002Fmain\u002F05-技能与代理开发\u002Fairweave\u002Fsub-skills\u002Fsource-connectors\u002FSKILL.md",[48,54,58,62],{"path":49,"resourceType":50,"resourceTypeDesc":51,"sizeBytes":52,"sourceHtmlUrl":53},"references\u002Fauth-and-config.md","REFERENCE","参考文档",11499,"https:\u002F\u002Fgithub.com\u002Flza6\u002FArmor-piercing-system-prompts\u002Fblob\u002Fmain\u002F05-技能与代理开发\u002Fairweave\u002Fsub-skills\u002Fsource-connectors\u002Freferences\u002Fauth-and-config.md",{"path":55,"resourceType":50,"resourceTypeDesc":51,"sizeBytes":56,"sourceHtmlUrl":57},"references\u002Fbrowse-tree.md",7741,"https:\u002F\u002Fgithub.com\u002Flza6\u002FArmor-piercing-system-prompts\u002Fblob\u002Fmain\u002F05-技能与代理开发\u002Fairweave\u002Fsub-skills\u002Fsource-connectors\u002Freferences\u002Fbrowse-tree.md",{"path":59,"resourceType":50,"resourceTypeDesc":51,"sizeBytes":60,"sourceHtmlUrl":61},"references\u002Fsource-registry.md",10673,"https:\u002F\u002Fgithub.com\u002Flza6\u002FArmor-piercing-system-prompts\u002Fblob\u002Fmain\u002F05-技能与代理开发\u002Fairweave\u002Fsub-skills\u002Fsource-connectors\u002Freferences\u002Fsource-registry.md",{"path":63,"resourceType":50,"resourceTypeDesc":51,"sizeBytes":64,"sourceHtmlUrl":65},"references\u002Ftroubleshooting.md",14846,"https:\u002F\u002Fgithub.com\u002Flza6\u002FArmor-piercing-system-prompts\u002Fblob\u002Fmain\u002F05-技能与代理开发\u002Fairweave\u002Fsub-skills\u002Fsource-connectors\u002Freferences\u002Ftroubleshooting.md",[67,74,81,88,96,103],{"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},"01M7EXRM12046G0GM1WGMMFXCN","ci-cd-and-automation","Automates CI\u002FCD pipeline setup. Use when setting up or modifying build and deployment pipelines. Use when you need to automate quality gates, configure test runners in CI, or establish deployment strategies.","https:\u002F\u002Fgithub.com\u002Flza6\u002FArmor-piercing-system-prompts\u002Fblob\u002Fmain\u002F05-技能与代理开发\u002Fci-cd-and-automation\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":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":19},"01M7EXRFYYSJ3Y15AGPDDEWWQD","chrome-devtools","Uses Chrome DevTools via MCP for efficient debugging, troubleshooting and browser automation. Use when debugging web pages, automating browser interactions, analyzing performance, or inspecting network requests. This skill does not apply to `--slim` mode (MCP configuration).","https:\u002F\u002Fgithub.com\u002Flza6\u002FArmor-piercing-system-prompts\u002Fblob\u002Fmain\u002F05-技能与代理开发\u002Fchrome-devtools\u002FSKILL.md",[],[],{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":87,"publishedAt":19},"01M7EXR6EYPE4X5X1BTAE6QJRV","chrome-cdp","Drive a real Chrome via the Chrome DevTools Protocol (CDP). Ensures a\ndebuggable Chrome is running (launching it if needed) so the agent can\nnavigate, read page content, inspect the DOM, run JavaScript, and take\nscreenshots — without the user typing any launch command. Includes a\nfirst-class \"review a live running app\" flow: point Chrome at the app under\ndevelopment and inspect\u002Fscreenshot the REAL page (what a static-artifact tool\ncannot do). Backed by Glimpse and the chrome-devtools MCP server. Use when\nasked to \"use chrome\", \"open chrome\", \"drive my browser\", \"read the page in\nchrome\", \"review the running app\", \"screenshot the app\", or \"\u002Fchrome-cdp\".","https:\u002F\u002Fgithub.com\u002Flza6\u002FArmor-piercing-system-prompts\u002Fblob\u002Fmain\u002F05-技能与代理开发\u002Fchrome-cdp\u002FSKILL.md",[],[],{"skillNo":89,"name":90,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":92,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":95,"publishedAt":19},"01M7EXR1Y7E79KQKG4J798XGH6","check-identity-pack","Run an AFP 100-point or AUSTRAC safe-harbour identity check over a set of documents, and report exactly what's missing. Use when the user asks to check identity documents, verify someone's ID for onboarding, or assess whether a document pack satisfies Australian identity requirements.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Flza6\u002FArmor-piercing-system-prompts\u002Fblob\u002Fmain\u002F05-技能与代理开发\u002Fcheck-identity-pack\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},"01M7EXQXW7C7PGREJW9ZZTZ16H","changelog","Auto-generates a changelog from git commits, sprint data, and design documents. Produces both internal and player-facing versions.","https:\u002F\u002Fgithub.com\u002Flza6\u002FArmor-piercing-system-prompts\u002Fblob\u002Fmain\u002F05-技能与代理开发\u002Fchangelog\u002FSKILL.md",[],[],{"skillNo":104,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":109,"publishedAt":19},"01M7EXQMH2ZME3ANN8Q8MEWPFB","cellxgene-census","Query the CZ CELLxGENE Census programmatically for versioned public single-cell and spatial transcriptomics data. Use when you need population-scale cell metadata, gene expression slices, Census summary counts, source H5AD URIs\u002Fdownloads, embeddings, spatial Census data, or reference atlas comparisons across organisms, tissues, diseases, assays, and cell types. For analyzing your own local single-cell data use scanpy, anndata, or scvi-tools.","https:\u002F\u002Fgithub.com\u002Flza6\u002FArmor-piercing-system-prompts\u002Fblob\u002Fmain\u002F05-技能与代理开发\u002Fcellxgene-census\u002FSKILL.md",[],[]]