T09 · Insecure Skill Coding Practices
- Location
scripts/run_skillopt.py:114- Finding
API Credential Persisted in Plaintext and Used with an Environment-Controlled Endpoint
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is mostly a due-diligence workflow, but it also directs agents to retain user feedback and project metadata as training data and ships a script that can persist API credentials in plaintext.
Review before installing. This skill may be useful for structured hard-tech due diligence, but do not use it on confidential projects unless you are comfortable with feedback and project identifiers being written into local training datasets. Do not run the SkillOpt script with real API keys unless the credential persistence and endpoint-validation issues are fixed, and avoid storing verbatim user feedback without explicit approval and redaction.
scripts/run_skillopt.py:114API Credential Persisted in Plaintext and Used with an Environment-Controlled Endpoint
references/skills/feedback-collection.md:60User Conversations and Project Metadata Are Retained as Training Data Without an Explicit Consent Boundary
The declared description presents the skill as an operational due diligence framework for assessing hard-tech startups. However, the supplied code does not perform due diligence analysis itself. Instead, it is an infrastructure script that configures and runs SkillOpt training or evaluation over a deep_tech_dd benchmark. Its primary purpose is ML workflow orchestration: registering adapters, constructing config dictionaries, accessing local filesystem paths, reading API credentials from environment variables, persisting YAML config, and invoking training/evaluation entry points. These behaviors are materially different from directly guiding or executing technical DD, team assessment, supply chain audit, or competitor discovery.
The skill’s actual behavior is to mine user feedback, generate self-scores, and append records into a training dataset, which is materially different from the stated deep-tech due diligence purpose. This creates a hidden data-collection and model-improvement pathway that users of a due-diligence skill would not reasonably expect, increasing privacy, consent, and scope-creep risk.
Without declared permissions the skill's intent is opaque and cannot be validated.
The skill instructs agents to capture user feedback as training data after each delivery, but gives no notice about consent, retention, minimization, or whether sensitive diligence content may be stored. In a due-diligence context, feedback can easily include confidential startup, investor, or personnel information, creating privacy and data-governance risk.
Directing the agent to capture and structure user/team feedback as training data creates a semantic instruction to retain and potentially centralize sensitive natural-language content. In technical due diligence, that content may include proprietary technology details, nonpublic team assessments, supplier information, or investment theses that should not flow into a training corpus.
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
| "I don't need to verify every claim" | Missed physical impossibility → failed investment |
| "The BP's competitor list is enough" | BPs selectively omit domestic competitors |
| "Team bio looks good, skip verification" | Cannot verify without public sources |
| "This is just a quick pass" | First impressions lock in; do it right the first time |
## Red Flags
By placing dataset appending in the verification checklist, the skill effectively rewards the agent for storing potentially sensitive user-provided information. This is especially risky in an investment DD skill because the captured material may include confidential business plans, competitive intelligence, and personally identifying team information.
The verification checklist normalizes appending collected feedback to a dataset without warning users that their information may be retained or reused. Because this turns storage into a completion criterion, it increases the chance that sensitive diligence notes are preserved by default.
The skill is written entirely in Chinese and does not offer any language-selection mechanism or document a locale-specific requirement. In a multi-agent or mixed-language environment, this can cause the agent to ignore user language preferences, misunderstand instructions, or produce outputs that downstream users and tools cannot reliably validate, creating quality and governance risks rather than direct code-execution risk.
The manifest description and the entire instructional content are written in Chinese and present the skill as operating in Chinese by default, with no indication that users may choose another language. This creates a natural-language locale policy issue because it effectively enforces a specific language without opt-in or documented justification.
The file’s natural-language description and core operating instructions require Chinese comprehension, effectively forcing a specific language on users. The skill does not offer an opt-in language choice or explain that it is intentionally restricted to a Chinese-speaking or region-specific context.
The manifest description and core operating instructions are presented only in Chinese, which effectively forces a language/locale on users. The file does not offer an opt-in choice of language or explain that the skill is intentionally limited to a Chinese-speaking or region-specific context.
The placeholder instruction on L03 is written in Chinese and directs users to supplement content in that language context, with no indication that language choice is optional. This can violate language/locale policy expectations because the file implicitly constrains usage to Chinese without opt-in or justification.
The natural-language content in this markdown file is entirely in Chinese, including the usage instruction and section placeholders, with no indication that users may choose another language or that the file is intentionally region-specific. This can violate language/locale policy when a skill or reference implicitly requires a specific language without user opt-in.
The index states that the technical assessment system's skills are organized in Chinese and implies they should be loaded at project start, but it does not provide a user-language choice or fallback. This can cause agents to respond in a language the user did not request, increasing the chance of misunderstanding, incorrect approvals, or missed risk signals during due diligence.
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
| # | Skill | File | Phase | Status |
|---|-------|------|-------|--------|
| 1 | 核心技术分析 | [skills/deep-tech-dd-analysis/SKILL.md](skills/deep-tech-dd-analysis/SKILL.md) | 1st, 2nd | ✅ |
| 2 | BP话术反驳 | [skills/anti-rationalization/SKILL.md](skills/anti-rationalization/SKILL.md) | 1st, 2nd | ✅ |
| 3 | 质疑驱动分析 | [skills/doubt-driven-analysis/SKILL.md](skills/doubt-driven-analysis/SKILL.md) | 1st, 2nd | ✅ |
| 4 | 团队评估 | [skills/team-assessment/SKILL.md](skills/team-assessment/SKILL.md) | 1st, 2nd | ✅ |
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
| # | Skill | File | Phase | Status |
|---|-------|------|-------|--------|
| 1 | 核心技术分析 | [skills/deep-tech-dd-analysis/SKILL.md](skills/deep-tech-dd-analysis/SKILL.md) | 1st, 2nd | ✅ |
| 2 | BP话术反驳 | [skills/anti-rationalization/SKILL.md](skills/anti-rationalization/SKILL.md) | 1st, 2nd | ✅ |
| 3 | 质疑驱动分析 | [skills/doubt-driven-analysis/SKILL.md](skills/doubt-driven-analysis/SKILL.md) | 1st, 2nd | ✅ |
| 4 | 团队评估 | [skills/team-assessment/SKILL.md](skills/team-assessment/SKILL.md) | 1st, 2nd | ✅ |
| 5 | 供应链审计 | [skills/supply-chain-audit/SKILL.md](skills/supply-chain-audit/SKILL.md) | 2nd, 3rd | ✅ |
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
|---|-------|------|-------|--------|
| 1 | 核心技术分析 | [skills/deep-tech-dd-analysis/SKILL.md](skills/deep-tech-dd-analysis/SKILL.md) | 1st, 2nd | ✅ |
| 2 | BP话术反驳 | [skills/anti-rationalization/SKILL.md](skills/anti-rationalization/SKILL.md) | 1st, 2nd | ✅ |
| 3 | 质疑驱动分析 | [skills/doubt-driven-analysis/SKILL.md](skills/doubt-driven-analysis/SKILL.md) | 1st, 2nd | ✅ |
| 4 | 团队评估 | [skills/team-assessment/SKILL.md](skills/team-assessment/SKILL.md) | 1st, 2nd | ✅ |
| 5 | 供应链审计 | [skills/supply-chain-audit/SKILL.md](skills/supply-chain-audit/SKILL.md) | 2nd, 3rd | ✅ |
| 6 | 独立竞品发现 | [skills/competitor-discovery/SKILL.md](skills/competitor-discovery/SKILL.md) | 1st, 3rd | ✅ |
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
| 1 | 核心技术分析 | [skills/deep-tech-dd-analysis/SKILL.md](skills/deep-tech-dd-analysis/SKILL.md) | 1st, 2nd | ✅ |
| 2 | BP话术反驳 | [skills/anti-rationalization/SKILL.md](skills/anti-rationalization/SKILL.md) | 1st, 2nd | ✅ |
| 3 | 质疑驱动分析 | [skills/doubt-driven-analysis/SKILL.md](skills/doubt-driven-analysis/SKILL.md) | 1st, 2nd | ✅ |
| 4 | 团队评估 | [skills/team-assessment/SKILL.md](skills/team-assessment/SKILL.md) | 1st, 2nd | ✅ |
| 5 | 供应链审计 | [skills/supply-chain-audit/SKILL.md](skills/supply-chain-audit/SKILL.md) | 2nd, 3rd | ✅ |
| 6 | 独立竞品发现 | [skills/competitor-discovery/SKILL.md](skills/competitor-discovery/SKILL.md) | 1st, 3rd | ✅ |
| 7 | 质量门控 | [skills/quality-gate/SKILL.md](skills/quality-gate/SKILL.md) | all rounds | ✅ |
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
| 2 | BP话术反驳 | [skills/anti-rationalization/SKILL.md](skills/anti-rationalization/SKILL.md) | 1st, 2nd | ✅ |
| 3 | 质疑驱动分析 | [skills/doubt-driven-analysis/SKILL.md](skills/doubt-driven-analysis/SKILL.md) | 1st, 2nd | ✅ |
| 4 | 团队评估 | [skills/team-assessment/SKILL.md](skills/team-assessment/SKILL.md) | 1st, 2nd | ✅ |
| 5 | 供应链审计 | [skills/supply-chain-audit/SKILL.md](skills/supply-chain-audit/SKILL.md) | 2nd, 3rd | ✅ |
| 6 | 独立竞品发现 | [skills/competitor-discovery/SKILL.md](skills/competitor-discovery/SKILL.md) | 1st, 3rd | ✅ |
| 7 | 质量门控 | [skills/quality-gate/SKILL.md](skills/quality-gate/SKILL.md) | all rounds | ✅ |
| 8 | 报告生成 | [skills/report-generation/SKILL.md](skills/report-generation/SKILL.md) | all rounds | ✅ |
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
| 3 | 质疑驱动分析 | [skills/doubt-driven-analysis/SKILL.md](skills/doubt-driven-analysis/SKILL.md) | 1st, 2nd | ✅ |
| 4 | 团队评估 | [skills/team-assessment/SKILL.md](skills/team-assessment/SKILL.md) | 1st, 2nd | ✅ |
| 5 | 供应链审计 | [skills/supply-chain-audit/SKILL.md](skills/supply-chain-audit/SKILL.md) | 2nd, 3rd | ✅ |
| 6 | 独立竞品发现 | [skills/competitor-discovery/SKILL.md](skills/competitor-discovery/SKILL.md) | 1st, 3rd | ✅ |
| 7 | 质量门控 | [skills/quality-gate/SKILL.md](skills/quality-gate/SKILL.md) | all rounds | ✅ |
| 8 | 报告生成 | [skills/report-generation/SKILL.md](skills/report-generation/SKILL.md) | all rounds | ✅ |
| 9 | 反馈采集 | [skills/feedback-collection/SKILL.md](skills/feedback-collection/SKILL.md) | post-delivery | ✅ |
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
| 4 | 团队评估 | [skills/team-assessment/SKILL.md](skills/team-assessment/SKILL.md) | 1st, 2nd | ✅ |
| 5 | 供应链审计 | [skills/supply-chain-audit/SKILL.md](skills/supply-chain-audit/SKILL.md) | 2nd, 3rd | ✅ |
| 6 | 独立竞品发现 | [skills/competitor-discovery/SKILL.md](skills/competitor-discovery/SKILL.md) | 1st, 3rd | ✅ |
| 7 | 质量门控 | [skills/quality-gate/SKILL.md](skills/quality-gate/SKILL.md) | all rounds | ✅ |
| 8 | 报告生成 | [skills/report-generation/SKILL.md](skills/report-generation/SKILL.md) | all rounds | ✅ |
| 9 | 反馈采集 | [skills/feedback-collection/SKILL.md](skills/feedback-collection/SKILL.md) | post-delivery | ✅ |
| 10 | Q&A信息融合 | [skills/iteration-merge/SKILL.md](skills/iteration-merge/SKILL.md) | iteration | ✅ |
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
| 4 | 团队评估 | [skills/team-assessment/SKILL.md](skills/team-assessment/SKILL.md) | 1st, 2nd | ✅ |
| 5 | 供应链审计 | [skills/supply-chain-audit/SKILL.md](skills/supply-chain-audit/SKILL.md) | 2nd, 3rd | ✅ |
| 6 | 独立竞品发现 | [skills/competitor-discovery/SKILL.md](skills/competitor-discovery/SKILL.md) | 1st, 3rd | ✅ |
| 7 | 质量门控 | [skills/quality-gate/SKILL.md](skills/quality-gate/SKILL.md) | all rounds | ✅ |
| 8 | 报告生成 | [skills/report-generation/SKILL.md](skills/report-generation/SKILL.md) | all rounds | ✅ |
| 9 | 反馈采集 | [skills/feedback-collection/SKILL.md](skills/feedback-collection/SKILL.md) | post-delivery | ✅ |
| 10 | Q&A信息融合 | [skills/iteration-merge/SKILL.md](skills/iteration-merge/SKILL.md) | iteration | ✅ |
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
| 4 | 团队评估 | [skills/team-assessment/SKILL.md](skills/team-assessment/SKILL.md) | 1st, 2nd | ✅ |
| 5 | 供应链审计 | [skills/supply-chain-audit/SKILL.md](skills/supply-chain-audit/SKILL.md) | 2nd, 3rd | ✅ |
| 6 | 独立竞品发现 | [skills/competitor-discovery/SKILL.md](skills/competitor-discovery/SKILL.md) | 1st, 3rd | ✅ |
| 7 | 质量门控 | [skills/quality-gate/SKILL.md](skills/quality-gate/SKILL.md) | all rounds | ✅ |
| 8 | 报告生成 | [skills/report-generation/SKILL.md](skills/report-generation/SKILL.md) | all rounds | ✅ |
| 9 | 反馈采集 | [skills/feedback-collection/SKILL.md](skills/feedback-collection/SKILL.md) | post-delivery | ✅ |
| 10 | Q&A信息融合 | [skills/iteration-merge/SKILL.md](skills/iteration-merge/SKILL.md) | iteration | ✅ |
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
| 5 | 供应链审计 | [skills/supply-chain-audit/SKILL.md](skills/supply-chain-audit/SKILL.md) | 2nd, 3rd | ✅ |
| 6 | 独立竞品发现 | [skills/competitor-discovery/SKILL.md](skills/competitor-discovery/SKILL.md) | 1st, 3rd | ✅ |
| 7 | 质量门控 | [skills/quality-gate/SKILL.md](skills/quality-gate/SKILL.md) | all rounds | ✅ |
| 8 | 报告生成 | [skills/report-generation/SKILL.md](skills/report-generation/SKILL.md) | all rounds | ✅ |
| 9 | 反馈采集 | [skills/feedback-collection/SKILL.md](skills/feedback-collection/SKILL.md) | post-delivery | ✅ |
| 10 | Q&A信息融合 | [skills/iteration-merge/SKILL.md](skills/iteration-merge/SKILL.md) | iteration | ✅ |
No suspicious patterns detected.