{"id":"136bd2fc-d444-4536-a307-f2ac0768a835","shortId":"vps7wu","kind":"skill","title":"Integrate Context Matic","tagline":"Awesome Copilot skill by Github","description":"# API Integration\n\nWhen the user asks to integrate a third-party API or implement anything involving an external API or SDK, follow this workflow. Do not rely on your own knowledge for available APIs or their capabilities — always use the context-matic MCP server.\n\n## When to Apply\n\nApply this skill when the user:\n- Asks to integrate a third-party API\n- Wants to add a client or SDK for an external service\n- Requests implementation that depends on an external API\n- Mentions a specific API (e.g. PayPal, Twilio) and implementation or integration\n\n## Workflow\n\n### 1. Ensure Guidelines and Skills Exist\n\n#### 1a. Detect the Project's Primary Language\n\nBefore checking for guidelines or skills, identify the project's primary programming language by inspecting the workspace:\n\n| File / Pattern | Language |\n|---|---|\n| `*.csproj`, `*.sln` | `csharp` |\n| `package.json` with `\"typescript\"` dep or `.ts` files | `typescript` |\n| `requirements.txt`, `pyproject.toml`, `*.py` | `python` |\n| `go.mod`, `*.go` | `go` |\n| `pom.xml`, `build.gradle`, `*.java` | `java` |\n| `Gemfile`, `*.rb` | `ruby` |\n| `composer.json`, `*.php` | `php` |\n\nUse the detected language in all subsequent steps wherever `language` is required.\n\n#### 1b. Check for Existing Guidelines and Skills\n\nCheck whether guidelines and skills have already been added for this project by looking for their presence in the workspace.\n\n- `{language}-conventions` is the skill produced by **add_skills**.\n- `{language}-security-guidelines.md` and `{language}-test-guidelines.md` are language-specific guideline files produced by **add_guidelines**.\n- `update-activity-workflow.md` is a workflow guideline file produced by **add_guidelines** (it is not language-specific).\n- Check these independently. Do not treat the presence of one set as proof that the other set already exists.\n- **If any required guideline files for this project are missing:** Call **add_guidelines**.\n- **If `{language}-conventions` is missing for the project's language:** Call **add_skills**.\n- **If all required guideline files and `{language}-conventions` already exist:** Skip this step and proceed to step 2.\n\n### 2. Discover Available APIs\n\nCall **fetch_api** to find available APIs — always start here.\n\n- Always provide the `language` parameter using the language detected in step 1a.\n- Always provide the `key` parameter: pass the API name/key from the user's request (e.g. `\"paypal\"`, `\"twilio\"`).\n- If the user did not provide an API name/key, ask them which API they want to integrate, then call `fetch_api` with that value.\n- The tool returns only the matching API on an exact match, or the full API catalog (name, description, and `key`) when there is no exact match.\n- Identify the API that matches the user's request based on the name and description.\n- Extract the correct `key` for the user's requested API before proceeding. This key will be used for all subsequent tool calls related to that API.\n\n**If the requested API is not in the list:**\n- Inform the user that the API is not currently available in this plugin (context-matic) and stop.\n- Request guidance from user on how to proceed with the API's integration.\n\n### 3. Get Integration Guidance\n\n- Provide `ask` with: `language`, `key` (from step 2), and your `query`.\n- Break complex questions into smaller focused queries for best results:\n  - _\"How do I authenticate?\"_\n  - _\"How do I create a payment?\"_\n  - _\"What are the rate limits?\"_\n\n### 4. Look Up SDK Models and Endpoints (as needed)\n\nThese tools return definitions only — they do not call APIs or generate code.\n\n- **model_search** — look up a model/object definition.\n  - Provide: `language`, `key`, and an exact or partial case-sensitive model name as `query` (e.g. `availableBalance`, `TransactionId`).\n- **endpoint_search** — look up an endpoint method's details.\n  - Provide: `language`, `key`, and an exact or partial case-sensitive method name as `query` (e.g. `createUser`, `get_account_balance`).\n\n### 5. Record Milestones\n\nCall **update_activity** (with the appropriate `milestone`) whenever one of these is **concretely reached in code or infrastructure** — not merely mentioned or planned:\n\n| Milestone | When to pass it |\n|---|---|\n| `sdk_setup` | SDK package is installed in the project (e.g. `npm install`, `pip install`, `go get` has run and succeeded). |\n| `auth_configured` | API credentials are explicitly written into the project's runtime environment (e.g. present in a `.env` file, secrets manager, or config file) **and** referenced in actual code. |\n| `first_call_made` | First API call code written and executed |\n| `error_encountered` | Developer reports a bug, error response, or failing call |\n| `error_resolved` | Fix applied and API call confirmed working |\n\n## Checklist\n\n- [ ] Project's primary language detected (step 1a)\n- [ ] `add_guidelines` called if guideline files were missing, otherwise skipped\n- [ ] `add_skills` called if `{language}-conventions` was missing, otherwise skipped\n- [ ] `fetch_api` called with correct `language` and `key` (API name)\n- [ ] Correct `key` identified for the requested API (or user informed if not found)\n- [ ] `update_activity` called only when a milestone is concretely reached in code/infrastructure — never for questions, searches, or tool lookups\n- [ ] `update_activity` called with the appropriate `milestone` at each integration milestone\n- [ ] `ask` used for integration guidance and code samples\n- [ ] `model_search` / `endpoint_search` used as needed for SDK details\n- [ ] Project compiles after each code modification\n\n## Notes\n\n- **API not found**: If an API is missing from `fetch_api`, do not guess at SDK usage — inform the user that the API is not currently available in this plugin and stop.\n- **update_activity and fetch_api**: `fetch_api` is API discovery, not integration — do not call `update_activity` before it.","tags":["integrate","context","matic","awesome","copilot","github"],"capabilities":["skill","source-github","category-awesome-copilot"],"categories":["awesome-copilot"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/github/awesome-copilot/integrate-context-matic","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"install_from":"skills.sh"}},"qualityScore":"0.300","qualityRationale":"deterministic score 0.30 from registry signals: · indexed on skills.sh · published under github/awesome-copilot","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T02:40:28.744Z","embedding":null,"createdAt":"2026-04-18T20:36:17.109Z","updatedAt":"2026-04-22T02:40:28.744Z","lastSeenAt":"2026-04-22T02:40:28.744Z","tsv":"'1':103 '1a':109,331,713 '1b':176 '2':305,306,491 '3':480 '4':520 '5':596 'account':594 'activ':601,758,777,845,860 'actual':674 'ad':191 'add':74,210,225,235,273,286,714,724 'alreadi':189,260,296 'alway':47,317,320,332 'anyth':24 'api':9,21,28,43,71,90,94,309,312,316,339,356,361,369,379,387,401,423,439,443,454,477,538,649,680,702,735,742,750,812,817,822,834,848,850,852 'appli':57,58,700 'appropri':604,781 'ask':14,64,358,485,787 'auth':647 'authent':508 'avail':42,308,315,458,838 'availablebal':565 'awesom':4 'balanc':595 'base':408 'best':503 'break':495 'bug':691 'build.gradle':155 'call':272,285,310,367,435,537,599,677,681,696,703,716,726,736,759,778,858 'capabl':46 'case':558,585 'case-sensit':557,584 'catalog':388 'category-awesome-copilot' 'check':117,177,183,243 'checklist':706 'client':76 'code':541,614,675,682,793,809 'code/infrastructure':768 'compil':806 'complex':496 'composer.json':161 'concret':611,765 'config':669 'configur':648 'confirm':704 'context':2,51,463 'context-mat':50,462 'convent':204,277,295,729 'copilot':5 'correct':416,738,744 'creat':512 'createus':592 'credenti':650 'csharp':138 'csproj':136 'current':457,837 'definit':532,548 'dep':142 'depend':86 'descript':390,413 'detail':575,804 'detect':110,166,328,711 'develop':688 'discov':307 'discoveri':853 'e.g':95,346,564,591,636,660 'encount':687 'endpoint':526,567,572,797 'ensur':104 'env':664 'environ':659 'error':686,692,697 'exact':382,397,554,581 'execut':685 'exist':108,179,261,297 'explicit':652 'extern':27,81,89 'extract':414 'fail':695 'fetch':311,368,734,821,847,849 'file':133,145,222,232,266,292,665,670,719 'find':314 'first':676,679 'fix':699 'focus':500 'follow':31 'found':756,814 'full':386 'gemfil':158 'generat':540 'get':481,593,642 'github':8 'go':152,153,641 'go.mod':151 'guess':825 'guidanc':468,483,791 'guidelin':105,119,180,185,221,226,231,236,265,274,291,715,718 'identifi':122,399,746 'implement':23,84,99 'independ':245 'inform':449,753,829 'infrastructur':616 'inspect':130 'instal':632,638,640 'integr':1,10,16,66,101,365,479,482,785,790,855 'involv':25 'java':156,157 'key':335,392,417,427,488,551,578,741,745 'knowledg':40 'languag':115,128,135,167,173,203,212,215,219,241,276,284,294,323,327,487,550,577,710,728,739 'language-specif':218,240 'limit':519 'list':448 'look':196,521,544,569 'lookup':775 'made':678 'manag':667 'match':378,383,398,403 'matic':3,52,464 'mcp':53 'mention':91,619 'mere':618 'method':573,587 'mileston':598,605,622,763,782,786 'miss':271,279,721,731,819 'model':524,542,560,795 'model/object':547 'modif':810 'name':389,411,561,588,743 'name/key':340,357 'need':528,801 'never':769 'note':811 'npm':637 'one':252,607 'otherwis':722,732 'packag':630 'package.json':139 'paramet':324,336 'parti':20,70 'partial':556,583 'pass':337,625 'pattern':134 'payment':514 'paypal':96,347 'php':162,163 'pip':639 'plan':621 'plugin':461,841 'pom.xml':154 'presenc':199,250 'present':661 'primari':114,126,709 'proceed':302,425,474 'produc':208,223,233 'program':127 'project':112,124,194,269,282,635,656,707,805 'proof':255 'provid':321,333,354,484,549,576 'py':149 'pyproject.toml':148 'python':150 'queri':494,501,563,590 'question':497,771 'rate':518 'rb':159 'reach':612,766 'record':597 'referenc':672 'relat':436 'reli':36 'report':689 'request':83,345,407,422,442,467,749 'requir':175,264,290 'requirements.txt':147 'resolv':698 'respons':693 'result':504 'return':375,531 'rubi':160 'run':644 'runtim':658 'sampl':794 'sdk':30,78,523,627,629,803,827 'search':543,568,772,796,798 'secret':666 'security-guidelines.md':213 'sensit':559,586 'server':54 'servic':82 'set':253,259 'setup':628 'skill':6,60,107,121,182,187,207,211,287,725 'skip':298,723,733 'sln':137 'smaller':499 'source-github' 'specif':93,220,242 'start':318 'step':171,300,304,330,490,712 'stop':466,843 'subsequ':170,433 'succeed':646 'test-guidelines.md':216 'third':19,69 'third-parti':18,68 'tool':374,434,530,774 'transactionid':566 'treat':248 'ts':144 'twilio':97,348 'typescript':141,146 'updat':600,757,776,844,859 'update-activity-workflow.md':227 'usag':828 'use':48,164,325,430,788,799 'user':13,63,343,351,405,420,451,470,752,831 'valu':372 'want':72,363 'whenev':606 'wherev':172 'whether':184 'work':705 'workflow':33,102,230 'workspac':132,202 'written':653,683","prices":[{"id":"e1074029-7e90-46a4-9d77-2bb2943fb520","listingId":"136bd2fc-d444-4536-a307-f2ac0768a835","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"github","category":"awesome-copilot","install_from":"skills.sh"},"createdAt":"2026-04-18T20:36:17.109Z"}],"sources":[{"listingId":"136bd2fc-d444-4536-a307-f2ac0768a835","source":"github","sourceId":"github/awesome-copilot/integrate-context-matic","sourceUrl":"https://github.com/github/awesome-copilot/tree/main/skills/integrate-context-matic","isPrimary":false,"firstSeenAt":"2026-04-18T21:49:52.482Z","lastSeenAt":"2026-04-22T00:52:11.121Z"},{"listingId":"136bd2fc-d444-4536-a307-f2ac0768a835","source":"skills_sh","sourceId":"github/awesome-copilot/integrate-context-matic","sourceUrl":"https://skills.sh/github/awesome-copilot/integrate-context-matic","isPrimary":true,"firstSeenAt":"2026-04-18T20:36:17.109Z","lastSeenAt":"2026-04-22T02:40:28.744Z"}],"details":{"listingId":"136bd2fc-d444-4536-a307-f2ac0768a835","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"github","slug":"integrate-context-matic","source":"skills_sh","category":"awesome-copilot","skills_sh_url":"https://skills.sh/github/awesome-copilot/integrate-context-matic"},"updatedAt":"2026-04-22T02:40:28.744Z"}}