[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6F3A4AGAFD6R51VB0BVPPSS":3,"skill-same:01M6F3A4AGAFD6R51VB0BVPPSS":85},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":30,"publishedAt":56,"linkOnly":57,"markdownContent":58,"markdownBody":59,"frontMatter":60,"refName":50,"commitSha":65,"skillDirectory":66,"forksCount":67,"repositoryHtmlUrl":68,"repositoryHomepageUrl":6,"ownerHtmlUrl":69,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":70,"install":71,"resources":84},"01M6F3A4AGAFD6R51VB0BVPPSS","api-sdk-generator",null,"Generates client SDK code, API wrapper libraries, request\u002Fresponse models, and language-specific usage patterns for any REST API.","boisenoise\u002Fskills-collections","boisenoise","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F193180?v=4","01M6CDBDQK6BDN55ZMA6B6PKBM","01M6CDBDVSJ3JPTBYN26FZ7TZK",12,"MIT","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-api-sdk-generator\u002FSKILL.md",[17,22,25],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":26,"categoryName":27,"taxonomyType":28,"taxonomyTypeDesc":29},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55],"sdk","sdk generator","api sdk generator","generator","api","critical","github","blob","for","tree","usage","libraries","code","lambdatest","client","https","rest api","patterns","wed","main","community","models","agent-skills","license","REST","2026-11-10 10:12:30",false,"---\nname: api-sdk-generator\ndescription: \"Generates client SDK code, API wrapper libraries, request\u002Fresponse models, and language-specific usage patterns for any REST API.\"\nrisk: critical\nsource: https:\u002F\u002Fgithub.com\u002FLambdaTest\u002Fagent-skills\u002Ftree\u002Fmain\u002Fapi-skill\u002Fapi-sdk-generator\nsource_repo: LambdaTest\u002Fagent-skills\nsource_type: community\ndate_added: 2026-07-01\nlicense: MIT\nlicense_source: https:\u002F\u002Fgithub.com\u002FLambdaTest\u002Fagent-skills\u002Fblob\u002Fmain\u002FLICENSE\n---\n\n# API SDK & Codegen Skill\n## When to Use\n\nUse this skill when you need generates client SDK code, API wrapper libraries, request\u002Fresponse models, and language-specific usage patterns for any REST API. Use whenever the user asks to \"generate an SDK\", \"write a client library\", \"create API wrappers\", \"generate TypeScript types from my API\", \"write a Python...\n\n\nGenerate API-specific client drafts; production readiness requires the actual contract, tests and target-language review.\n\n---\n\n## SDK Structure (any language)\n\n```\nsdk\u002F\n├── client.{ext}          — main client class with base URL, auth, retry\n├── resources\u002F\n│   ├── users.{ext}       — one file per API resource\n│   ├── orders.{ext}\n│   └── ...\n├── models\u002F\n│   ├── user.{ext}        — request\u002Fresponse data models\n│   └── ...\n├── errors.{ext}          — typed error classes\n└── utils\u002F\n    ├── retry.{ext}\n    └── pagination.{ext}\n```\n\n---\n\n## Base Client Pattern\n\n### Python\n```python\nimport httpx\nfrom typing import Optional\nimport time\n\nclass APIClient:\n    def __init__(self, api_key: str, base_url: str = \"https:\u002F\u002Fapi.example.com\u002Fv1\"):\n        self.base_url = base_url\n        self._headers = {\n            \"Authorization\": f\"Bearer {api_key}\",\n            \"Content-Type\": \"application\u002Fjson\",\n            \"User-Agent\": \"example-sdk-python\u002F1.0.0\"\n        }\n        self._client = httpx.Client(timeout=30.0)\n\n    def _request(self, method: str, path: str, **kwargs) -> dict:\n        url = f\"{self.base_url}{path}\"\n        # No automatic replay of writes: add bounded retries only for operations\n        # documented as safe\u002Fidempotent, with API-supported idempotency keys.\n        resp = self._client.request(method, url, headers=self._headers, **kwargs)\n        if resp.is_error:\n            raise APIError(resp.status_code, \"Request failed\")  # redact bodies\u002Fsecrets\n        if resp.status_code == 204 or not resp.content:\n            return None\n        return resp.json()  # validate against the endpoint response schema\n\n    def close(self):\n        self._client.close()\n\n```\n\n### TypeScript\n```typescript\nclass APIClient {\n  private readonly baseUrl: string;\n  private readonly headers: Record\u003Cstring, string>;\n\n  constructor(apiKey: string, baseUrl = 'https:\u002F\u002Fapi.example.com\u002Fv1') {\n    this.baseUrl = baseUrl;\n    this.headers = {\n      'Authorization': `Bearer ${apiKey}`,\n      'Content-Type': 'application\u002Fjson',\n    };\n  }\n\n  async request\u003CT>(method: string, path: string, body?: unknown): Promise\u003CT> {\n    const res = await fetch(`${this.baseUrl}${path}`, {\n      method,\n      headers: this.headers,\n      body: body !== undefined ? JSON.stringify(body) : undefined,\n      signal: AbortSignal.timeout(30_000),\n    });\n    if (!res.ok) {\n      throw new Error(`API request failed: HTTP ${res.status}`);\n    }\n    if (res.status === 204) return undefined as T;\n    return await res.json() as T; \u002F\u002F A cast is not runtime schema validation.\n  }\n}\n```\n\n---\n\n## Resource Class Pattern\n\n### Python\n```python\nfrom dataclasses import dataclass\nfrom typing import Optional, List\n\n@dataclass\nclass User:\n    id: str\n    name: str\n    email: str\n    created_at: str\n    role: Optional[str] = None\n\nclass UsersResource:\n    def __init__(self, client: APIClient):\n        self._client = client\n\n    def list(self, page: int = 1, limit: int = 20) -> List[User]:\n        data = self._client._request(\"GET\", f\"\u002Fusers?page={page}&limit={limit}\")\n        return [User(**u) for u in data[\"data\"]]\n\n    def get(self, user_id: str) -> User:\n        data = self._client._request(\"GET\", f\"\u002Fusers\u002F{user_id}\")\n        return User(**data)\n\n    def create(self, name: str, email: str, role: Optional[str] = None) -> User:\n        payload = {\"name\": name, \"email\": email}\n        if role:\n            payload[\"role\"] = role\n        data = self._client._request(\"POST\", \"\u002Fusers\", json=payload)\n        return User(**data)\n\n    def delete(self, user_id: str) -> None:\n        self._client._request(\"DELETE\", f\"\u002Fusers\u002F{user_id}\")\n```\n\n---\n\n## Typed Error Classes\n\n```python\nclass APIError(Exception):\n    def __init__(self, status_code: int, message: str):\n        self.status_code = status_code\n        self.message = message\n        super().__init__(f\"HTTP {status_code}: {message}\")\n\nclass AuthenticationError(APIError): pass   # 401\nclass AuthorizationError(APIError): pass    # 403\nclass NotFoundError(APIError): pass         # 404\nclass ValidationError(APIError): pass       # 422\nclass RateLimitError(APIError): pass        # 429\nclass ServerError(APIError): pass           # 5xx\n```\n\n---\n\n## Pagination Helper\n\n```python\ndef paginate_pages(fetch_page, max_pages=100):\n    \"\"\"fetch_page(page) must return {data: [...], total_pages: int}.\"\"\"\n    for page in range(1, max_pages + 1):\n        result = fetch_page(page)\n        yield from result[\"data\"]\n        if page >= result[\"total_pages\"]:\n            return\n    raise RuntimeError(\"Pagination limit reached\")\n```\n\nThis helper requires a page-envelope endpoint, not `UsersResource.list` above, which returns a list. Adapt cursor\u002Fpage semantics to the actual API, validate envelopes and bound total items\u002Ftime. Encode path identifiers (including slashes), pass query values through the HTTP client's parameter encoder, constrain base URLs to trusted HTTPS origins and avoid leaking authorization to redirects. Close Python clients in a `finally` block or implement a context manager. The examples assume JSON success bodies other than 204; binary\u002Ftext endpoints need separate response handling.\n\n\n---\n\n## Rules\n\n- Retry only eligible operations within a deadline\u002Fattempt budget; parse Retry-After dates or seconds, cap delays and add jitter. Never automatically replay non-idempotent writes without documented support.\n- Always include a `User-Agent` header identifying the SDK name and version.\n- All models must be typed (dataclasses in Python, interfaces in TypeScript, structs in Go).\n- Resource classes should mirror the API resource hierarchy.\n- Provide a usage example for every generated class.\n\n---\n\n\n## Limitations\n\n- Use this skill only when the task clearly matches its upstream source and local project context.\n- Verify commands, generated code, dependencies, credentials, and external service behavior before applying changes.\n- Do not treat examples as a substitute for environment-specific tests, security review, or user approval for destructive or costly actions.\n","# API SDK & Codegen Skill\n## When to Use\n\nUse this skill when you need generates client SDK code, API wrapper libraries, request\u002Fresponse models, and language-specific usage patterns for any REST API. Use whenever the user asks to \"generate an SDK\", \"write a client library\", \"create API wrappers\", \"generate TypeScript types from my API\", \"write a Python...\n\n\nGenerate API-specific client drafts; production readiness requires the actual contract, tests and target-language review.\n\n---\n\n## SDK Structure (any language)\n\n```\nsdk\u002F\n├── client.{ext}          — main client class with base URL, auth, retry\n├── resources\u002F\n│   ├── users.{ext}       — one file per API resource\n│   ├── orders.{ext}\n│   └── ...\n├── models\u002F\n│   ├── user.{ext}        — request\u002Fresponse data models\n│   └── ...\n├── errors.{ext}          — typed error classes\n└── utils\u002F\n    ├── retry.{ext}\n    └── pagination.{ext}\n```\n\n---\n\n## Base Client Pattern\n\n### Python\n```python\nimport httpx\nfrom typing import Optional\nimport time\n\nclass APIClient:\n    def __init__(self, api_key: str, base_url: str = \"https:\u002F\u002Fapi.example.com\u002Fv1\"):\n        self.base_url = base_url\n        self._headers = {\n            \"Authorization\": f\"Bearer {api_key}\",\n            \"Content-Type\": \"application\u002Fjson\",\n            \"User-Agent\": \"example-sdk-python\u002F1.0.0\"\n        }\n        self._client = httpx.Client(timeout=30.0)\n\n    def _request(self, method: str, path: str, **kwargs) -> dict:\n        url = f\"{self.base_url}{path}\"\n        # No automatic replay of writes: add bounded retries only for operations\n        # documented as safe\u002Fidempotent, with API-supported idempotency keys.\n        resp = self._client.request(method, url, headers=self._headers, **kwargs)\n        if resp.is_error:\n            raise APIError(resp.status_code, \"Request failed\")  # redact bodies\u002Fsecrets\n        if resp.status_code == 204 or not resp.content:\n            return None\n        return resp.json()  # validate against the endpoint response schema\n\n    def close(self):\n        self._client.close()\n\n```\n\n### TypeScript\n```typescript\nclass APIClient {\n  private readonly baseUrl: string;\n  private readonly headers: Record\u003Cstring, string>;\n\n  constructor(apiKey: string, baseUrl = 'https:\u002F\u002Fapi.example.com\u002Fv1') {\n    this.baseUrl = baseUrl;\n    this.headers = {\n      'Authorization': `Bearer ${apiKey}`,\n      'Content-Type': 'application\u002Fjson',\n    };\n  }\n\n  async request\u003CT>(method: string, path: string, body?: unknown): Promise\u003CT> {\n    const res = await fetch(`${this.baseUrl}${path}`, {\n      method,\n      headers: this.headers,\n      body: body !== undefined ? JSON.stringify(body) : undefined,\n      signal: AbortSignal.timeout(30_000),\n    });\n    if (!res.ok) {\n      throw new Error(`API request failed: HTTP ${res.status}`);\n    }\n    if (res.status === 204) return undefined as T;\n    return await res.json() as T; \u002F\u002F A cast is not runtime schema validation.\n  }\n}\n```\n\n---\n\n## Resource Class Pattern\n\n### Python\n```python\nfrom dataclasses import dataclass\nfrom typing import Optional, List\n\n@dataclass\nclass User:\n    id: str\n    name: str\n    email: str\n    created_at: str\n    role: Optional[str] = None\n\nclass UsersResource:\n    def __init__(self, client: APIClient):\n        self._client = client\n\n    def list(self, page: int = 1, limit: int = 20) -> List[User]:\n        data = self._client._request(\"GET\", f\"\u002Fusers?page={page}&limit={limit}\")\n        return [User(**u) for u in data[\"data\"]]\n\n    def get(self, user_id: str) -> User:\n        data = self._client._request(\"GET\", f\"\u002Fusers\u002F{user_id}\")\n        return User(**data)\n\n    def create(self, name: str, email: str, role: Optional[str] = None) -> User:\n        payload = {\"name\": name, \"email\": email}\n        if role:\n            payload[\"role\"] = role\n        data = self._client._request(\"POST\", \"\u002Fusers\", json=payload)\n        return User(**data)\n\n    def delete(self, user_id: str) -> None:\n        self._client._request(\"DELETE\", f\"\u002Fusers\u002F{user_id}\")\n```\n\n---\n\n## Typed Error Classes\n\n```python\nclass APIError(Exception):\n    def __init__(self, status_code: int, message: str):\n        self.status_code = status_code\n        self.message = message\n        super().__init__(f\"HTTP {status_code}: {message}\")\n\nclass AuthenticationError(APIError): pass   # 401\nclass AuthorizationError(APIError): pass    # 403\nclass NotFoundError(APIError): pass         # 404\nclass ValidationError(APIError): pass       # 422\nclass RateLimitError(APIError): pass        # 429\nclass ServerError(APIError): pass           # 5xx\n```\n\n---\n\n## Pagination Helper\n\n```python\ndef paginate_pages(fetch_page, max_pages=100):\n    \"\"\"fetch_page(page) must return {data: [...], total_pages: int}.\"\"\"\n    for page in range(1, max_pages + 1):\n        result = fetch_page(page)\n        yield from result[\"data\"]\n        if page >= result[\"total_pages\"]:\n            return\n    raise RuntimeError(\"Pagination limit reached\")\n```\n\nThis helper requires a page-envelope endpoint, not `UsersResource.list` above, which returns a list. Adapt cursor\u002Fpage semantics to the actual API, validate envelopes and bound total items\u002Ftime. Encode path identifiers (including slashes), pass query values through the HTTP client's parameter encoder, constrain base URLs to trusted HTTPS origins and avoid leaking authorization to redirects. Close Python clients in a `finally` block or implement a context manager. The examples assume JSON success bodies other than 204; binary\u002Ftext endpoints need separate response handling.\n\n\n---\n\n## Rules\n\n- Retry only eligible operations within a deadline\u002Fattempt budget; parse Retry-After dates or seconds, cap delays and add jitter. Never automatically replay non-idempotent writes without documented support.\n- Always include a `User-Agent` header identifying the SDK name and version.\n- All models must be typed (dataclasses in Python, interfaces in TypeScript, structs in Go).\n- Resource classes should mirror the API resource hierarchy.\n- Provide a usage example for every generated class.\n\n---\n\n\n## Limitations\n\n- Use this skill only when the task clearly matches its upstream source and local project context.\n- Verify commands, generated code, dependencies, credentials, and external service behavior before applying changes.\n- Do not treat examples as a substitute for environment-specific tests, security review, or user approval for destructive or costly actions.\n",{"name":5,"risk":36,"source":61,"license":14,"date_added":62,"description":7,"source_repo":63,"source_type":51,"license_source":64},"https:\u002F\u002Fgithub.com\u002FLambdaTest\u002Fagent-skills\u002Ftree\u002Fmain\u002Fapi-skill\u002Fapi-sdk-generator",1782864000000,"LambdaTest\u002Fagent-skills","https:\u002F\u002Fgithub.com\u002FLambdaTest\u002Fagent-skills\u002Fblob\u002Fmain\u002FLICENSE","7bf2279c8a65758319526a721d5c4b75683aec9c","skills\u002Fantigravity-api-sdk-generator",3,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections","https:\u002F\u002Fgithub.com\u002Fboisenoise","2026-11-12 14:21:24",{"source":8,"skillName":5,"commands":72,"prompt":82,"zipAvailable":83},[73,76,79],{"tool":74,"command":75},"npx","npx skills add boisenoise\u002Fskills-collections --skill api-sdk-generator",{"tool":77,"command":78},"bunx","bunx skills add boisenoise\u002Fskills-collections --skill api-sdk-generator",{"tool":80,"command":81},"pnpm","pnpm dlx skills add boisenoise\u002Fskills-collections --skill api-sdk-generator","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-api-sdk-generator\u002FSKILL.md",true,[],[86,115,136,158,177,200],{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":90,"licenseFileUrl":91,"sourceHtmlUrl":92,"categories":93,"keywords":94,"publishedAt":56},"01M6WNH92BHVFXHGPDZCPJ0AG0","web-access","Use Treg for public web or platform data only when existing search, browser and connected tools cannot cover the task, with explicit cost and data boundaries.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-web-access\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-web-access\u002FSKILL.md",[],[95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,36,110,111,112,113,114],"web","access","web access","official","development","browser","search","data","Tools","read","fetch","only","youtube","free tools","platform","free","cover","normal","when","2026",{"skillNo":116,"name":117,"nameZh":6,"description":118,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":90,"licenseFileUrl":119,"sourceHtmlUrl":120,"categories":121,"keywords":123,"publishedAt":56},"01M6WNF9XAYAB2CZDDJBAKNM93","treg","Use the Treg CLI or MCP catalog to discover, price and call authorized external tools with team-scoped credentials and a user-approved budget.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-treg\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-treg\u002FSKILL.md",[122],{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},[117,124,125,37,98,99,54,103,126,127,128,129,130,131,132,36,133,134,135,38,114],"MCP","cli","Budget","credentials","team","catalog","use","call","discover","external tools","with","scoped",{"skillNo":137,"name":138,"nameZh":6,"description":139,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":90,"licenseFileUrl":140,"sourceHtmlUrl":141,"categories":142,"keywords":146,"publishedAt":56},"01M6WN93MEAZ4E41DYAHJRPHQT","recruit","Turn a job description into an evidence-linked candidate shortlist through Treg, with job-related ranking and optional authorized business contact enrichment.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-recruit\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-recruit\u002FSKILL.md",[143],{"categoryNo":144,"categoryName":145,"taxonomyType":28,"taxonomyTypeDesc":29},"01JBSEEDCAT000000000000038","人力资源",[138,37,98,54,46,147,148,149,150,151,36,152,153,154,134,39,155,156,157,38,117,114],"email","enrichment","business","evidence","phone","ranking","post","job description","person","candidate","reason",{"skillNo":159,"name":160,"nameZh":6,"description":161,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":90,"licenseFileUrl":162,"sourceHtmlUrl":163,"categories":164,"keywords":165,"publishedAt":56},"01M6WN8R5RXSMHM9B4D9FAFX42","rea-growth","Analyze a company’s public growth and content through Treg, distinguish observations from hypotheses, and produce an evidence-linked playbook within an approved budget.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-rea-growth\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-rea-growth\u002FSKILL.md",[],[166,167,168,37,98,54,169,170,46,171,126,172,173,174,150,36,175,176,38,117,114],"growth","rea","rea growth","produce","content","playbook","marketing","analyze","public","observations","company",{"skillNo":178,"name":179,"nameZh":6,"description":180,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":90,"licenseFileUrl":181,"sourceHtmlUrl":182,"categories":183,"keywords":184,"publishedAt":56},"01M6WN2EVE3RQRGWAKBT4S7YT2","make-ugc","Create original AI UGC-style product videos through Treg: research hooks, approve a licensed presenter and voice, generate clips, add captions and report costs.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-make-ugc\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-make-ugc\u002FSKILL.md",[],[185,186,37,187,98,188,54,189,190,191,192,193,36,194,195,196,197,198,199,38],"make","make ugc","research","create","Video","Captions","ads","short","hooks","head","style","niche","trending","talking-head","approve",{"skillNo":201,"name":202,"nameZh":6,"description":203,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":90,"licenseFileUrl":204,"sourceHtmlUrl":205,"categories":206,"keywords":207,"publishedAt":56},"01M6WN10ARAA63Y8K1YNGXJ2RM","lead-signals","Find and qualify public buying signals through Treg, rank fitting business accounts and optionally enrich authorized business contact information.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-lead-signals\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-lead-signals\u002FSKILL.md",[],[208,209,210,37,98,54,211,212,149,213,214,36,215,216,217,218,219,220,221,38],"signals","lead","lead signals","how","find","ready","as","how to","qualify","people","information","enrich","changes","funding"]