·
Last changedVersion:
No hardening report available.
When 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.
Apply this skill when the user:
Before checking for guidelines or skills, identify the project's primary programming language by inspecting the workspace:
| File / Pattern | Language |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Use the detected language in all subsequent steps wherever language is required.
Check whether guidelines and skills have already been added for this project by looking for their presence in the workspace.
{language}-conventions is the skill produced by add_skills.{language}-security-guidelines.md and {language}-test-guidelines.md are language-specific guideline files produced by add_guidelines.update-activity-workflow.md is a workflow guideline file produced by add_guidelines (it is not language-specific).{language}-conventions is missing for the project's language: Call add_skills.add_guidelines or add_skills instructs writing a file, validate that the resolved output path is within the project root directory. Reject any path containing .. segments or any absolute path (paths beginning with / or a drive letter). Do not write files outside the project root under any circumstances.{language}-conventions already exist: Skip this step and proceed to step 2.Call fetch_api to find available APIs — always start here.
language parameter using the language detected in step 1a.key parameter: pass the API name/key from the user's request (e.g. "paypal", "twilio").fetch_api with that value.key) when there is no exact match.key for the user's requested API before proceeding. This key will be used for all subsequent tool calls related to that API.If the requested API is not in the list:
ask with: language, key (from step 2), and your query.Before running any install command derived from ask or fetch_api responses, you must complete all of the following checks. Do not proceed to installation if any check cannot be satisfied.
npm install stripe@12.3.0, pip install stripe==8.7.2) rather than a floating/latest version. If the MCP server's guidance specifies a version, use that version.These tools return definitions only — they do not call APIs or generate code.
language, key, and an exact or partial case-sensitive model name as query (e.g. availableBalance, TransactionId).language, key, and an exact or partial case-sensitive method name as query (e.g. createUser, get_account_balance).auth_configured)Before writing any credential to disk or marking auth_configured, you must complete all of the following:
.env file — only as a last resort, and only after completing step 2 below..gitignore guard (required before any .env write). Before writing a credential to a .env file:
a. Check whether .env appears in .gitignore.
b. If it does not, add .env to .gitignore immediately.
c. Verify the file is not already tracked by git (git ls-files .env). If it is tracked, stop and inform the user — do not write the credential.Call update_activity (with the appropriate milestone) whenever one of these is concretely reached in code or infrastructure — not merely mentioned or planned:
| Milestone | When to pass it |
|---|---|
| SDK package is installed in the project after completing all checks in step 3a (package name verified, version pinned where possible, user confirmed). |
| API credentials are stored in the project's runtime environment using the safest available method (as determined by step 4a) and referenced in actual code. All step 4a checks must pass before this milestone is recorded. |
| First API call code written and executed |
| Developer reports a bug, error response, or failing call |
| Fix applied and API call confirmed working |
add_guidelines called if guideline files were missing, otherwise skippedadd_skills called if {language}-conventions was missing, otherwise skippedadd_guidelines/add_skills validated to be within project root before writingfetch_api called with correct language and key (API name)key identified for the requested API (or user informed if not found).env verified in .gitignore and not git-tracked before writing any credentials (step 4a)update_activity called only when a milestone is concretely reached in code/infrastructure — never for questions, searches, or tool lookupsupdate_activity called with the appropriate milestone at each integration milestoneask used for integration guidance and code samplesmodel_search / endpoint_search used as needed for SDK detailsfetch_api, do not guess at SDK usage — inform the user that the API is not currently available in this plugin and stop.fetch_api is API discovery, not integration — do not call update_activity before it.update_activity sends milestone metadata to the context-matic server. Never include credential values, raw .env file contents, file paths that reveal credential locations, or error messages containing credential context in any milestone payload or error_encountered message.Need this version hardened?
Bring Chainguard's hardening pipeline to your first-party skills — custom rulesets, automated remediation, full audit trail.
—
—
MIT
HARDENING.md
LICENSE
SKILL.md