Agent Skills
› NicholasFlemmer/styx-app
› provider-adapter
provider-adapter
GitHub指导如何为系统添加或修改目标提供商适配器,涵盖连接模式、健康检查、令牌管理及测试。
Trigger Scenarios
需要添加新的云服务商或数据库提供商支持
需要修改现有提供商的连接逻辑或认证方式
Install
npx skills add NicholasFlemmer/styx-app --skill provider-adapter -g -y
SKILL.md
Frontmatter
{
"name": "provider-adapter",
"description": "Add or modify a target provider (vercel, aws, gcp, supabase, github, ssh, or a new one) - connect modes (CLI login, token, OAuth, keys), test and health, token issue\/revoke and scoping, scope classification, shims, fixtures and tests.",
"allowed-tools": "Read, Grep, Edit, Write, Bash(pnpm:*), WebFetch",
"argument-hint": "<provider>"
}
Provider adapter: $ARGUMENTS
The full, current walkthrough is docs/contributing/adding-a-target.md (worked example: Supabase). Read it first and
follow its "Adding yours" checklist; this is the short version.
- Add the id to
providerSchema(packages/core/src/model/common.ts) and the secondProviderunion inapps/desktop/src/main/providers/types.ts;targets.providerhas a SQLCHECK, so add a table-rebuild migration (/db-migration). - Implement
ProviderAdapterinapps/desktop/src/main/providers/$0.ts: connect (CLI login first, then token / OAuth / keys under Advanced),test,health,issue,revoke,scopeOfCommand(argv)(fails closed: unknown commands are the widest scope). Register it inproviders/index.ts. - Secrets go through
CredentialVaultonly, behindcredentialRef;configholds non-secret ids. Reportscopedhonestly: an unscoped prod credential needs MFA even for reads. - Shims are generic (
packages/cli/src/wrap.ts+exec_authorize); add the CLI name to the shim tool list, the stripped env vars and the secret shapes the guide lists. - Copy and UI: provider names, connect bodies and the renderer's provider lists (see the guide's checklist).
- Tests:
MemoryVault, stubbedfetch,FakeCliRunner, a scope table including "fails closed", the registry test. Fake credentials are markedFIXTURE; never call real providers. - Run the
security-reviewersubagent.
Version History
- 1d72019 Current 2026-10-18 15:23


