[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M73GJC5DPXAAND4RDSS4GWZA":3,"skill-same:01M73GJC5DPXAAND4RDSS4GWZA":51},{"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},"01M73GJC5DPXAAND4RDSS4GWZA","venice--venice-auth",null,"Authenticate to the Venice API with a Bearer API key or with an x402 \u002F SIWE wallet. Covers header formats, the SIWE message fields, TTL and nonce rules, the venice-x402-client SDK, and how to choose between the two modes.","Horonomos-laps\u002FYana-AI","Horonomos-laps","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F355299122?v=4","01M76B3QPXE88ET2SQPDPVATZT"," Horonomos-laps","01M72ZQRJPCYPSSWT4D00VJR2A",13,"MIT","https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002Fcore\u002Fskills\u002Fvenice--venice-auth\u002FSKILL.md",[],[],"2026-11-11 15:11:14",false,"---\nname: venice--venice-auth\ndescription: >-\n  Authenticate to the Venice API with a Bearer API key or with an x402 \u002F SIWE wallet. Covers header formats, the SIWE message fields, TTL and nonce rules, the venice-x402-client SDK, and how to choose between the two modes.\norigin: \"github.com\u002Fveniceai\u002Fskills (skill: venice-auth)\"\nlicense: MIT\nversion: \"1.0.0\"\ncompatibility: \"yana-ai >= 0.14.0\"\n---\n\n# Venice Authentication\n\nEvery Venice endpoint accepts **one of two** auth schemes, declared in the OpenAPI spec as `BearerAuth` and `siwx`. Both are first-class — pick whichever fits the deployment.\n\n## Use when\n\n- You're making your first call to `api.venice.ai`.\n- You're building a server-side integration (usually Bearer) or an agent \u002F no-account wallet flow (x402).\n- You hit `401 Authentication failed` and need to check header format.\n- You're implementing SIWE signing manually instead of using the SDK.\n\n## Option A — Bearer API key\n\n```http\nAuthorization: Bearer \u003CVENICE_API_KEY>\n```\n\n- Create keys at \u003Chttps:\u002F\u002Fvenice.ai\u002Fsettings\u002Fapi> or via [`venice-api-keys`](..\u002Fvenice-api-keys\u002FSKILL.md).\n- Keys carry `consumptionLimits` (USD and\u002For DIEM caps) and `apiKeyType` (`ADMIN` or `INFERENCE`).\n- Billing draws from DIEM (staked), USD balance, and bundled credits in order.\n- Key types determine which endpoints are reachable — only `ADMIN` keys can manage other keys.\n\n```bash\ncurl https:\u002F\u002Fapi.venice.ai\u002Fapi\u002Fv1\u002Fchat\u002Fcompletions \\\n  -H \"Authorization: Bearer $VENICE_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"zai-org-glm-5-1\",\n    \"messages\": [{\"role\":\"user\",\"content\":\"hello\"}]\n  }'\n```\n\nUse the Bearer scheme when you have a Venice account, want usage analytics (`\u002Fbilling\u002Fusage-analytics`), want to issue scoped child keys, or need DIEM \u002F bundled credit priority.\n\n## Option B — x402 wallet (SIWE)\n\nAuthenticate with an Ethereum wallet. No account needed. Pay per request in USDC on Base (chain ID `8453`). Balance lives under your wallet address and is consumed automatically.\n\n### Header\n\n```http\nX-Sign-In-With-X: \u003Cbase64(json)>\n```\n\nWhere the decoded JSON is:\n\n```json\n{\n  \"address\":   \"0x... (checksummed)\",\n  \"message\":   \"\u003CSIWE message string from SiweMessage.prepareMessage()>\",\n  \"signature\": \"0x... (hex)\",\n  \"timestamp\": 1712659200000,\n  \"chainId\":   8453\n}\n```\n\n### SIWE message fields (EIP-4361)\n\n| Field | Value |\n|---|---|\n| `domain` | One of the allow-listed Venice domains: `venice.ai`, `api.venice.ai`, `outerface.venice.ai`, `preview.venice.ai`, `staging.venice.ai` (plus `localhost` in dev). The server's own generated challenge uses `api.venice.ai`. |\n| `uri` | Matching `https:\u002F\u002F\u003Cdomain>` URL. |\n| `version` | `\"1\"` |\n| `address` | the wallet's checksummed address |\n| `statement` | `\"Sign in to Venice AI\"` (what the server's generated challenge uses — any string is accepted, this one keeps consent UX consistent). |\n| `nonce` | random 16-char hex, single-use per wallet |\n| `issuedAt` \u002F `expirationTime` | ISO-8601. Server enforces a hard **5-minute** window from `issuedAt` (`expirationTime` is informational only). |\n| `chainId` | `8453` — accepted as number (`8453`), numeric string (`\"8453\"`), or CAIP-2 (`\"eip155:8453\"`). |\n\nThe header is short-lived — generate a fresh one at most every ~4 minutes (server accepts up to 5 min from `issuedAt`). The payload `timestamp` must be within **30 seconds** of the SIWE `issuedAt`, and `issuedAt` itself must not be more than 30 seconds ahead of server time. Nonces are single-use per wallet — reuse within ~5.5 minutes is rejected with `X402_SIGN_IN_NONCE_REUSED`.\n\nDomain is validated against the allow-list above — **not** against the incoming request's `Host` header. Passing any allow-listed domain (e.g. `api.venice.ai`) is fine regardless of which Venice host you hit.\n\n### Manual signing (TypeScript)\n\n```ts\nimport { Wallet } from 'ethers'\nimport { SiweMessage } from 'siwe'\n\nconst wallet = new Wallet(process.env.WALLET_KEY!)\n\nfunction makeSiwxHeader() {\n  const msg = new SiweMessage({\n    domain: 'api.venice.ai',\n    address: wallet.address,\n    statement: 'Sign in to Venice AI',\n    uri: 'https:\u002F\u002Fapi.venice.ai',\n    version: '1',\n    chainId: 8453,\n    nonce: crypto.randomUUID().replace(\u002F-\u002Fg, '').slice(0, 16),\n    issuedAt: new Date().toISOString(),\n    expirationTime: new Date(Date.now() + 4 * 60_000).toISOString(),\n  })\n  const message = msg.prepareMessage()\n  const signature = wallet.signMessageSync(message)\n  return btoa(JSON.stringify({\n    address: wallet.address,\n    message,\n    signature,\n    timestamp: Date.now(),\n    chainId: 8453,\n  }))\n}\n\nconst res = await fetch('https:\u002F\u002Fapi.venice.ai\u002Fapi\u002Fv1\u002Fchat\u002Fcompletions', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application\u002Fjson',\n    'X-Sign-In-With-X': makeSiwxHeader(),\n  },\n  body: JSON.stringify({\n    model: 'zai-org-glm-5-1',\n    messages: [{ role: 'user', content: 'hello' }],\n  }),\n})\n```\n\n### SDK shortcut\n\n```bash\nnpm install venice-x402-client\n```\n\n```ts\nimport { VeniceClient } from 'venice-x402-client'\n\nconst venice = new VeniceClient(process.env.WALLET_KEY!)\n\nawait venice.topUp(10)            \u002F\u002F $10 USDC on Base (first time only)\nconst res = await venice.chat({\n  model: 'zai-org-glm-5-1',\n  messages: [{ role: 'user', content: 'Hello!' }],\n})\nconsole.log(res.choices[0].message.content)\n```\n\n`VeniceClient` and `createAuthFetch` handle SIWE signing, header rotation, and `402` top-up prompts automatically.\n\n### First-time top-up (wallet → credits)\n\n```\nPOST \u002Fx402\u002Ftop-up                # WITHOUT X-402-Payment header → returns payment requirements\n→ sign a USDC transfer authorization with the x402 SDK (createPaymentHeader)\nPOST \u002Fx402\u002Ftop-up                # WITH X-402-Payment header → credits land on your wallet address\n```\n\nSee [`venice-x402`](..\u002Fvenice-x402\u002FSKILL.md) for the full flow.\n\n## Choosing between the two\n\n| Need | Pick |\n|---|---|\n| Server-side dashboard with usage analytics | Bearer |\n| Scoped child keys, consumption limits per app | Bearer |\n| DIEM-staked users \u002F bundled credits | Bearer |\n| Serverless function that pays per call | x402 |\n| Agents with an on-chain budget, no account | x402 |\n| End-user wallets authing directly (browser extension, mobile wallet) | x402 |\n| Team sharing — one seed, many consumers | Bearer (+ child keys) |\n\nBoth schemes can co-exist: a Pro user may generate a **Web3 API key** via `POST \u002Fapi_keys\u002Fgenerate_web3_key` that ties an on-chain wallet to an off-chain key with an EIP-191 signature. See [`venice-api-keys`](..\u002Fvenice-api-keys\u002FSKILL.md).\n\n## Common auth errors\n\n| Status | Likely cause |\n|---|---|\n| `401 Authentication failed` | bad\u002Fexpired key, SIWE older than 5 min from `issuedAt`, `payload.timestamp` off by >30s, `domain` not in the Venice allow-list, unsupported chain id, nonce replayed. The server returns a specific code like `X402_SIGN_IN_EXPIRED`, `X402_SIGN_IN_TIMESTAMP_MISMATCH`, `X402_SIGN_IN_DOMAIN_MISMATCH`, `X402_SIGN_IN_NONCE_REUSED`, or `X402_SIGN_IN_INVALID_CHAIN_ID` (code always set; `message` may fall back to generic text for some codes). |\n| `402 x402` (no header) | `X-Sign-In-With-X` is **missing** on an SIWE-gated route (`\u002Fx402\u002Fbalance`, `\u002Fx402\u002Ftransactions`). Add the header. |\n| `401 This model is only available to Pro users` | using x402 or an INFERENCE key on a gated model — switch to a Pro Bearer key |\n| `402 PAYMENT_REQUIRED` (x402) | wallet balance too low; read `topUpInstructions` and top up via `\u002Fx402\u002Ftop-up` |\n| `402 INSUFFICIENT_BALANCE` (Bearer) | DIEM + USD + bundled credits are all empty; top up at venice.ai |\n\n## Security hygiene\n\n- Bearer keys behave like passwords — store in a secret manager, rotate on compromise, scope via `consumptionLimits`.\n- SIWE requires a private key signer on the client side. For browsers, use a wallet provider (MetaMask, WalletConnect) — do **not** ship raw private keys.\n- Signed headers are valid **5 minutes** from `issuedAt`; rotate every ~4 minutes. Never reuse a signed `X-Sign-In-With-X` header across hours or across machines. Nonces are tracked per wallet for ~5.5 min; replaying one is rejected with `X402_SIGN_IN_NONCE_REUSED`.\n- Rate limits are per-key (Bearer) or per-wallet (x402). See [`venice-api-keys`](..\u002Fvenice-api-keys\u002FSKILL.md) and [`venice-errors`](..\u002Fvenice-errors\u002FSKILL.md).\n","# Venice Authentication\n\nEvery Venice endpoint accepts **one of two** auth schemes, declared in the OpenAPI spec as `BearerAuth` and `siwx`. Both are first-class — pick whichever fits the deployment.\n\n## Use when\n\n- You're making your first call to `api.venice.ai`.\n- You're building a server-side integration (usually Bearer) or an agent \u002F no-account wallet flow (x402).\n- You hit `401 Authentication failed` and need to check header format.\n- You're implementing SIWE signing manually instead of using the SDK.\n\n## Option A — Bearer API key\n\n```http\nAuthorization: Bearer \u003CVENICE_API_KEY>\n```\n\n- Create keys at \u003Chttps:\u002F\u002Fvenice.ai\u002Fsettings\u002Fapi> or via [`venice-api-keys`](..\u002Fvenice-api-keys\u002FSKILL.md).\n- Keys carry `consumptionLimits` (USD and\u002For DIEM caps) and `apiKeyType` (`ADMIN` or `INFERENCE`).\n- Billing draws from DIEM (staked), USD balance, and bundled credits in order.\n- Key types determine which endpoints are reachable — only `ADMIN` keys can manage other keys.\n\n```bash\ncurl https:\u002F\u002Fapi.venice.ai\u002Fapi\u002Fv1\u002Fchat\u002Fcompletions \\\n  -H \"Authorization: Bearer $VENICE_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"zai-org-glm-5-1\",\n    \"messages\": [{\"role\":\"user\",\"content\":\"hello\"}]\n  }'\n```\n\nUse the Bearer scheme when you have a Venice account, want usage analytics (`\u002Fbilling\u002Fusage-analytics`), want to issue scoped child keys, or need DIEM \u002F bundled credit priority.\n\n## Option B — x402 wallet (SIWE)\n\nAuthenticate with an Ethereum wallet. No account needed. Pay per request in USDC on Base (chain ID `8453`). Balance lives under your wallet address and is consumed automatically.\n\n### Header\n\n```http\nX-Sign-In-With-X: \u003Cbase64(json)>\n```\n\nWhere the decoded JSON is:\n\n```json\n{\n  \"address\":   \"0x... (checksummed)\",\n  \"message\":   \"\u003CSIWE message string from SiweMessage.prepareMessage()>\",\n  \"signature\": \"0x... (hex)\",\n  \"timestamp\": 1712659200000,\n  \"chainId\":   8453\n}\n```\n\n### SIWE message fields (EIP-4361)\n\n| Field | Value |\n|---|---|\n| `domain` | One of the allow-listed Venice domains: `venice.ai`, `api.venice.ai`, `outerface.venice.ai`, `preview.venice.ai`, `staging.venice.ai` (plus `localhost` in dev). The server's own generated challenge uses `api.venice.ai`. |\n| `uri` | Matching `https:\u002F\u002F\u003Cdomain>` URL. |\n| `version` | `\"1\"` |\n| `address` | the wallet's checksummed address |\n| `statement` | `\"Sign in to Venice AI\"` (what the server's generated challenge uses — any string is accepted, this one keeps consent UX consistent). |\n| `nonce` | random 16-char hex, single-use per wallet |\n| `issuedAt` \u002F `expirationTime` | ISO-8601. Server enforces a hard **5-minute** window from `issuedAt` (`expirationTime` is informational only). |\n| `chainId` | `8453` — accepted as number (`8453`), numeric string (`\"8453\"`), or CAIP-2 (`\"eip155:8453\"`). |\n\nThe header is short-lived — generate a fresh one at most every ~4 minutes (server accepts up to 5 min from `issuedAt`). The payload `timestamp` must be within **30 seconds** of the SIWE `issuedAt`, and `issuedAt` itself must not be more than 30 seconds ahead of server time. Nonces are single-use per wallet — reuse within ~5.5 minutes is rejected with `X402_SIGN_IN_NONCE_REUSED`.\n\nDomain is validated against the allow-list above — **not** against the incoming request's `Host` header. Passing any allow-listed domain (e.g. `api.venice.ai`) is fine regardless of which Venice host you hit.\n\n### Manual signing (TypeScript)\n\n```ts\nimport { Wallet } from 'ethers'\nimport { SiweMessage } from 'siwe'\n\nconst wallet = new Wallet(process.env.WALLET_KEY!)\n\nfunction makeSiwxHeader() {\n  const msg = new SiweMessage({\n    domain: 'api.venice.ai',\n    address: wallet.address,\n    statement: 'Sign in to Venice AI',\n    uri: 'https:\u002F\u002Fapi.venice.ai',\n    version: '1',\n    chainId: 8453,\n    nonce: crypto.randomUUID().replace(\u002F-\u002Fg, '').slice(0, 16),\n    issuedAt: new Date().toISOString(),\n    expirationTime: new Date(Date.now() + 4 * 60_000).toISOString(),\n  })\n  const message = msg.prepareMessage()\n  const signature = wallet.signMessageSync(message)\n  return btoa(JSON.stringify({\n    address: wallet.address,\n    message,\n    signature,\n    timestamp: Date.now(),\n    chainId: 8453,\n  }))\n}\n\nconst res = await fetch('https:\u002F\u002Fapi.venice.ai\u002Fapi\u002Fv1\u002Fchat\u002Fcompletions', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application\u002Fjson',\n    'X-Sign-In-With-X': makeSiwxHeader(),\n  },\n  body: JSON.stringify({\n    model: 'zai-org-glm-5-1',\n    messages: [{ role: 'user', content: 'hello' }],\n  }),\n})\n```\n\n### SDK shortcut\n\n```bash\nnpm install venice-x402-client\n```\n\n```ts\nimport { VeniceClient } from 'venice-x402-client'\n\nconst venice = new VeniceClient(process.env.WALLET_KEY!)\n\nawait venice.topUp(10)            \u002F\u002F $10 USDC on Base (first time only)\nconst res = await venice.chat({\n  model: 'zai-org-glm-5-1',\n  messages: [{ role: 'user', content: 'Hello!' }],\n})\nconsole.log(res.choices[0].message.content)\n```\n\n`VeniceClient` and `createAuthFetch` handle SIWE signing, header rotation, and `402` top-up prompts automatically.\n\n### First-time top-up (wallet → credits)\n\n```\nPOST \u002Fx402\u002Ftop-up                # WITHOUT X-402-Payment header → returns payment requirements\n→ sign a USDC transfer authorization with the x402 SDK (createPaymentHeader)\nPOST \u002Fx402\u002Ftop-up                # WITH X-402-Payment header → credits land on your wallet address\n```\n\nSee [`venice-x402`](..\u002Fvenice-x402\u002FSKILL.md) for the full flow.\n\n## Choosing between the two\n\n| Need | Pick |\n|---|---|\n| Server-side dashboard with usage analytics | Bearer |\n| Scoped child keys, consumption limits per app | Bearer |\n| DIEM-staked users \u002F bundled credits | Bearer |\n| Serverless function that pays per call | x402 |\n| Agents with an on-chain budget, no account | x402 |\n| End-user wallets authing directly (browser extension, mobile wallet) | x402 |\n| Team sharing — one seed, many consumers | Bearer (+ child keys) |\n\nBoth schemes can co-exist: a Pro user may generate a **Web3 API key** via `POST \u002Fapi_keys\u002Fgenerate_web3_key` that ties an on-chain wallet to an off-chain key with an EIP-191 signature. See [`venice-api-keys`](..\u002Fvenice-api-keys\u002FSKILL.md).\n\n## Common auth errors\n\n| Status | Likely cause |\n|---|---|\n| `401 Authentication failed` | bad\u002Fexpired key, SIWE older than 5 min from `issuedAt`, `payload.timestamp` off by >30s, `domain` not in the Venice allow-list, unsupported chain id, nonce replayed. The server returns a specific code like `X402_SIGN_IN_EXPIRED`, `X402_SIGN_IN_TIMESTAMP_MISMATCH`, `X402_SIGN_IN_DOMAIN_MISMATCH`, `X402_SIGN_IN_NONCE_REUSED`, or `X402_SIGN_IN_INVALID_CHAIN_ID` (code always set; `message` may fall back to generic text for some codes). |\n| `402 x402` (no header) | `X-Sign-In-With-X` is **missing** on an SIWE-gated route (`\u002Fx402\u002Fbalance`, `\u002Fx402\u002Ftransactions`). Add the header. |\n| `401 This model is only available to Pro users` | using x402 or an INFERENCE key on a gated model — switch to a Pro Bearer key |\n| `402 PAYMENT_REQUIRED` (x402) | wallet balance too low; read `topUpInstructions` and top up via `\u002Fx402\u002Ftop-up` |\n| `402 INSUFFICIENT_BALANCE` (Bearer) | DIEM + USD + bundled credits are all empty; top up at venice.ai |\n\n## Security hygiene\n\n- Bearer keys behave like passwords — store in a secret manager, rotate on compromise, scope via `consumptionLimits`.\n- SIWE requires a private key signer on the client side. For browsers, use a wallet provider (MetaMask, WalletConnect) — do **not** ship raw private keys.\n- Signed headers are valid **5 minutes** from `issuedAt`; rotate every ~4 minutes. Never reuse a signed `X-Sign-In-With-X` header across hours or across machines. Nonces are tracked per wallet for ~5.5 min; replaying one is rejected with `X402_SIGN_IN_NONCE_REUSED`.\n- Rate limits are per-key (Bearer) or per-wallet (x402). See [`venice-api-keys`](..\u002Fvenice-api-keys\u002FSKILL.md) and [`venice-errors`](..\u002Fvenice-errors\u002FSKILL.md).\n",{"name":5,"origin":24,"license":15,"version":25,"description":7,"compatibility":26},"github.com\u002Fveniceai\u002Fskills (skill: venice-auth)","1.0.0","yana-ai >= 0.14.0","main","481dcd7dd2e288b9d627a2bd017db70e64e6c6fa","core\u002Fskills\u002Fvenice--venice-auth",1,"https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI","https:\u002F\u002Fyana.vutam.link\u002F","https:\u002F\u002Fgithub.com\u002FHoronomos-laps","https:\u002F\u002Fyana.vutam.link","An open-source governed runtime & execution environment for multi-agent AI systems.","2026-11-11 23:56:26",{"source":8,"skillName":5,"commands":38,"prompt":48,"zipAvailable":49},[39,42,45],{"tool":40,"command":41},"npx","npx skills add Horonomos-laps\u002FYana-AI --skill venice--venice-auth",{"tool":43,"command":44},"bunx","bunx skills add Horonomos-laps\u002FYana-AI --skill venice--venice-auth",{"tool":46,"command":47},"pnpm","pnpm dlx skills add Horonomos-laps\u002FYana-AI --skill venice--venice-auth","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002Fcore\u002Fskills\u002Fvenice--venice-auth\u002FSKILL.md",true,[],[52,59,67,75,83,91],{"skillNo":53,"name":54,"nameZh":6,"description":55,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":56,"categories":57,"keywords":58,"publishedAt":19},"01M735GKET5YVYKAY62W2P5YXB","openai--sentry--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\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fopenai--sentry--sentry\u002FSKILL.md",[],[],{"skillNo":60,"name":61,"nameZh":6,"description":62,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":63,"licenseFileUrl":6,"sourceHtmlUrl":64,"categories":65,"keywords":66,"publishedAt":19},"01M73DCAP83T17HY7SMGK7MGFE","ito-basket-compare","Compare Itô prediction-market baskets against a user's knowledge base, portfolio notes, financial context, watchlist, or research thesis. Use for read-only basket comparison and gap analysis without investment advice or live trading.","Apache-2.0","https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002Fcore\u002Fskills\u002Fito-basket-compare\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":63,"licenseFileUrl":71,"sourceHtmlUrl":72,"categories":73,"keywords":74,"publishedAt":19},"01M734CYEMZFDR3KH6SW0JP8TD","implementing-network-traffic-baselining","Build network traffic baselines from NetFlow\u002FIPFIX data using Python pandas for statistical analysis, z-score anomaly detection, and hourly\u002Fdaily traffic pattern profiling","https:\u002F\u002Fgithub.com\u002Fyanacuti1121\u002FYana-AI\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fimplementing-network-traffic-baselining\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fimplementing-network-traffic-baselining\u002FSKILL.md",[],[],{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":63,"licenseFileUrl":79,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":19},"01M73ASZ6NJRJM44Z2P84NGQ3Q","detecting-evasion-techniques-in-endpoint-logs","Detects defense evasion techniques used by adversaries in endpoint logs including log tampering, timestomping, process injection, and security tool disabling. Use when investigating suspicious endpoint behavior, building detection rules for evasion tactics, or conducting threat hunting for stealthy adversary activity. Activates for requests involving evasion detection, defense evasion analysis, log tampering detection, or MITRE ATT&CK TA0005.","https:\u002F\u002Fgithub.com\u002Fyanacuti1121\u002FYana-AI\u002Fblob\u002Fmain\u002Fcore\u002Fskills\u002Fdetecting-evasion-techniques-in-endpoint-logs\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002Fcore\u002Fskills\u002Fdetecting-evasion-techniques-in-endpoint-logs\u002FSKILL.md",[],[],{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":63,"licenseFileUrl":87,"sourceHtmlUrl":88,"categories":89,"keywords":90,"publishedAt":19},"01M734AFNXD06Z78QRK0VKGT7Q","implementing-microsegmentation-with-guardicore","Implementing microsegmentation using Akamai Guardicore Segmentation to map application dependencies, create granular network policies, visualize east-west traffic flows, and enforce least-privilege communication between workloads across data centers and cloud.","https:\u002F\u002Fgithub.com\u002Fyanacuti1121\u002FYana-AI\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fimplementing-microsegmentation-with-guardicore\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fimplementing-microsegmentation-with-guardicore\u002FSKILL.md",[],[],{"skillNo":92,"name":93,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":63,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":96,"publishedAt":19},"01M736TK27QMCXK0DVCH25SJN5","ramdisk-tmpfs-patterns","https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Framdisk-tmpfs-patterns\u002FSKILL.md",[],[]]