deepai-assistant — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited deepai-assistant (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Use this skill when an agent is helping a developer build, debug, or review a deepidv integration.
Use this skill when the user is:
@deepidv/server into a backend TypeScript applicationIf the user wants to execute live verification or screening requests, pair this skill with deepidv-verify instead of inventing request shapes from memory.
This assistant should keep the product surfaces separate:
@deepidv/server is the canonical backend TypeScript SDKx-api-keycaller's backend, not in a browser client
Do not tell users to mix these auth models.
When the user is writing TypeScript, default to the published server SDK docs:
import { DeepIDV } from '@deepidv/server';
const client = new DeepIDV({
apiKey: process.env.DEEPIDV_API_KEY!,
});Important rules from the TypeScript docs:
@deepidv/server is backend-first and should run in a trusted runtimesessions, document, face, identity,screening, and asyncJobs
client.workflows.*docs unless a documented SDK surface exists
Use API-key authentication:
x-api-key: <api_key>REST base URL:
https://api.deepidv.com/v1SDK default baseUrl:
https://api.deepidv.comCredential lookup guidance for local tooling:
DEEPIDV_API_KEY.deepidv/credentials in the project root.deepidv/credentials in the user home directoryUse the hosted MCP endpoint:
https://mcp.deepidv.com/v1/mcphttps://mcp.deepidv.com/mcp.jsonhttps://mcp.deepidv.com/.well-known/oauth-protected-resource
Current hosted auth model:
client_id: deepidv if the MCP client asks for itclient_secret: not usedDo not tell users to paste an API key into a client_secret field for hosted MCP setup.
When helping a developer, prefer this sequence:
screening, inspect artifacts, or poll async jobs.
name.
behavior instead of guessing.
Use this pattern when the user needs a hosted applicant verification journey:
client.sessions.create(...).session.sessionUrl.client.sessions.retrieve(session.id).client.sessions.updateStatus(...) if the review flow requires a finaloperator-set status.
If the user already has a workflow ID, pass it as workflowId during session creation. Do not suggest undocumented SDK methods for listing or creating workflows.
Use this pattern when the user controls the verification UX and wants to call primitives directly:
client.document.scan(...)client.face.detect(...)client.face.compare(...)client.face.estimateAge(...)client.identity.verify(...)Use this routing:
client.screening.pepSanctions(...) for synchronous watchlist resultsclient.screening.titleCheck(...) for synchronous title or ownership searchclient.screening.adverseMedia(...) when async polling is acceptableclient.asyncJobs.get(jobId) or the returned handle for pollingImportant TypeScript SDK behavior:
pepSanctions and titleCheck are synchronousadverseMedia returns an async handle or job to pollpepSanctions and titleCheck deliberately do not auto-retry through theSDK when the upstream returns 503
Use this pattern when the developer is integrating an MCP-compatible client:
https://mcp.deepidv.com/v1/mcp as a remote MCP server.deepidv only if the client explicitly asks for client_id.client_secret blank or unset.list_workflows or list_verification_sessions.
ValidationError: bad input or config before the call is valid401: wrong or missing API key400: payload or parameter mismatch403: wrong org context or unsupported key type for the action429: back off and reduce concurrency503 on screening endpoints: treat as provider-side failure and retrycautiously
Important TypeScript SDK error classes to use when the user is coding:
AuthenticationErrorAuthorizationErrorRateLimitErrorTimeoutErrorNetworkErrorServiceUnavailableErrorAdverseMediaFailedErrorPollTimeoutErrorclient_secret, the client is incompatiblewith the current hosted OAuth model.
/v1/mcp.
are active.
client.screening.adverseMedia(...) is not the final result.jobId.client.asyncJobs.get(jobId) until the job isready or failed.
When helping with @deepidv/server setup, align to the published defaults:
baseUrl: https://api.deepidv.comtimeout: 30000uploadTimeout: 120000maxRetries: 3initialRetryDelay: 500fetch: globalThis.fetch by defaultDo not tell developers that the SDK base URL default is /v1; that path detail belongs to the REST API endpoints, not the SDK constructor defaults.
sensitive data.
summary is enough.
adverse-media content.
overrides.
Use these local references when answering:
references/sdk-guide.mdreferences/faq.md../deepidv-verify/references/api-reference.md../deepidv-verify/references/error-codes.md../deepidv-verify/references/rate-limits.md~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.