360 Secure SkillHub
360 安全技能中心

ai-features-readiness

用于产品调用语言模型或 AI API、嵌入生成内容或提供聊天机器人时的上线准备审计:检查提供方密钥是否暴露在客户端、哪些用户数据发给提供方、是否向用户披露 AI 交互、滥用与成本限制以及失败恢复,并输出带证据标签的报告。不评估模型质量或给出法律合规结论。

分类:安全
moh-obaida
热度 0.00
最近更新 2026-11-01 23:30:15

安装

发给 Agent
帮我安装这个技能:npx secure-skills-cli add moh-obaida/readyvibe-skills/ai-features-readiness
兼容性
通用兼容
联网要求
不联网
数据出网
数据不出本机
Metadata
name
ai-features-readiness
description
Use when a product calls a language model or other AI API, embeds AI-generated content, or offers a chatbot, and you need to check provider keys and exposure, what user data reaches the provider, disclosure that users are dealing with AI, abuse and cost controls, and failure behavior. Do not use it to add a generic AI disclaimer to a product with no user-facing AI, to judge model quality, or to interpret AI regulation.
license
Apache-2.0
metadata
{"kind":"specialist","compliance-domains":"9,11","launch-checks":"38","helpers":"scan-secrets","references":"official-sources","companions":"design-system-reconnaissance"}

ai-features-readiness

AI features fail launch in predictable ways: an API key in the browser bundle, unlimited free usage that runs up a bill, user data sent to a provider nobody disclosed, and a "support agent" that is a model with no human route.

Activate when

  • Source calls a model API (OpenAI, Anthropic, Gemini, Mistral, Replicate, Hugging Face, Vercel AI SDK, LangChain, etc.), embeds an AI widget, or the copy mentions AI/assistant/copilot/generated.
  • Not when there is no AI feature (say so and stop).

Working alone

This skill is self-contained. Its companions (declared in its metadata) are skills whose method it may need to do its own promised work. Use of a companion can be conditional: declaring one does not mean running it. When a companion's lane applies, use the skill if it is installed; if not, follow its short entry in references/companion-methods.md and say in your report which lanes ran inline at reduced depth. Never skip an applicable lane silently. Skills mentioned here only for escalation, referral, documentation, or optional deeper follow-up are not dependencies: report the hand-off and finish honestly.

Companions: design-system-reconnaissance.

Inspect

  1. Inventory: providers, models, endpoints, where calls originate (browser vs server), streaming, tools/agents with side effects, retrieval sources.
  2. Key exposure: node scripts/scan-secrets.mjs --root . (paths relative to this skill's folder). Provider keys must be server-side only: no NEXT_PUBLIC_/VITE_ keys, none in bundles, source maps, or client fetches. Confirm the browser talks to your API route, not the provider directly with a key.
  3. Data to the provider: what user input, files, or account data is included in prompts; system prompts containing secrets or private data; conversation logging; whether the disclosure names the provider and states what is sent (policy-consistency, data-flow-mapping); provider settings on training/retention are owner-side (UNKNOWN unless documented).
  4. Abuse and cost: auth or rate limits on the AI route; per-user/IP quotas; max tokens and request size; prompt-injection blast radius (can model output trigger actions, browse, run code, send email? What guards exist?); output rendered as HTML (XSS) or executed.
  5. User-facing honesty: AI-generated output identified where a visitor could mistake it for human or verified content; chatbot presents as a bot; no invented human agents or testimonials generated by AI (content-trust).
  6. Failure behavior: timeouts, provider errors, rate limits, empty responses, refusals: does the UI recover (failure-resilience)?
  7. Domain risk: medical, legal, financial, or children's advice via AI: regulated-domain-triggers.

Evidence that counts

Label each claim OBSERVED, SOURCE-INDICATED, DECLARED, INFERRED, UNKNOWN, or REVIEW REQUIRED. UNKNOWN is never a pass and never a failure.

  • A key in source is SOURCE-INDICATED; treat as exposed if it appears in client-shipped output (OBSERVED via scan) and report without printing the value.
  • Provider retention/training settings are DECLARED or UNKNOWN unless the owner shows the account setting.
  • Prompt-injection resilience is not provable by inspection: say "not tested" or describe the specific tests run.
  • Legal specifics: never from memory. When a rule, deadline, threshold, or required wording matters, read the current text or guidance at an official source while you run (start from references/official-sources.md), cite the source and access date, and treat applicability to this business as REVIEW REQUIRED. If you cannot look it up, the answer is UNKNOWN.

May change

Design first. Before creating or changing anything visible, inspect the project's existing design system (design-system-reconnaissance) and build from its tokens and components, by the component ladder: reuse, compose, extend, and only then create a matching component. Never impose a ReadyVibe look on the user's site.

Move the provider call to a server route; read the key from server env; add basic auth/rate limiting and max-token caps where the project has a pattern; escape/sanitize rendered output; add a user-visible "AI-generated" note and a human contact route the owner has; correct disclosure to name the provider and data sent. Never rotate or use a key; never add a generic "AI may be wrong" banner where no user-facing AI exists.

Must not claim

"Safe", "private", "your data is never used for training", "no hallucinations", "compliant with AI regulation". Do not state provider policies from memory.

Verify

Re-run the secret scan on rebuilt output; confirm the network tab shows calls only to first-party routes; test an over-limit request and a provider-failure path; check that disclosures match the flows.

Escalate

An exposed provider key (HIGH; owner must rotate); sensitive data or minors' data going to a provider; agents with destructive tools; regulated advice; automated decisions about people.

No change is valid when

No AI provider, widget, or AI-generated content exists. Record the searches performed.