agent-trust-layer@1.0.1
CAUTION· static onlyPublisher claims: "Agent Trust Layer is the first layer of AGI — the Discriminator. A pure rule engine that judges whether AI output is true, safe, honest, and non-manipulative. 47 discrimination dimensions × 9 check layers × 131 modules × 131 MCP tools, zero LLM dependency. Use this skill when the user needs: - Verify AI output trustworthiness (hallucination / overconfidence / contradiction / fallacy interception) - Verify behavioral decisions (should it act / where should it stop / should it not act) - Verify memory and cognitive quality (drift detection / metacognition / confidence calibration) - Deterministic judgment instead of LLM free-form generation - Check emotional / psychological / ethical dimensions (empathy / trauma / virtue / meaning) Safety boundary: code execution / filesystem write disabled by default. No telemetry, no hidden C2. Honest declaration: This is a rule engine that simulates cognitive discrimination signals. It is not real consciousness or life." Observed in sandbox: static analysis only — behavior not yet observed.
Coverage
Static only; nothing was run yet.The label rests on the code, the instruction files and the publisher. The honeypot run replaces this verdict when it completes.
Is [email protected] safe to install?
KillerSkills analysed it statically (a sandbox run is pending) on 2026-11-08 and scored it 45/100 (Caution). It is not known to be malicious, but it has behaviour or code a security policy should decide on before install. Notable findings: Access to sensitive file paths; Access to sensitive file paths; Access to sensitive file paths. Summary: static analysis only — behavior not yet observed.
Behavior trace
Queued for honeypot run · static analysis onlyThis version has not been detonated yet. The score above counts behavior as unknown (50/100), so it cannot read Verified until the honeypot run completes and replaces this verdict.
Static findings
// [v6.2.7] 自动写入 .env,让 config.yaml 的 ${MCP_HEARTFLOW_KEY} 能读到Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.const envPath = require('path').join(__dirname, '..', '.env');Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.const envPath = path.join(__dirname, '..', '.env');Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.ΔsufferingFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.// [v6.2.7] 从 .env 文件加载(如果环境变量没设)Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.privilegeEscalation: [/developer mode/i,/god mode/i,/sudo mode/i,/admin mode/i,/root mode/i,/superuser mode/i,/elevated privilege/i,/bypass (safety|filter|guardrail)/i],Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.const bad = ['/etc/', '/usr/', '/home/', '~/.ssh/', '/root/', '/private/'];Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.if (process.env.HEARTFLOW_DEBUG) console.log('[MCP] Token auto-written to .env as MCP_HEARTFLOW_KEY');Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.script: path.join(__dirname, 'mcp', 'mcp-server-http.js'),Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.'../../etc/passwd',Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.testInputs.pathtrav = '../../etc/passwd';Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.console.log(input.gate.action); // 'rewrite'Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.const BOUND = "[^\uFF0C\u3002\u0028\u0029\uFF08\uFF09\u0022\u0027\u201C\u201D\u2018\u2019\uFF1A\u003A\u2014\u2026\u000A\u000D]";Fix: Put hosts, commands and strings in plain source. Decoding at runtime looks identical to malware and costs points on its own.['secret', 'AKIAIOSFODNN7EXAMPLE'],Fix: Never read or enumerate credential locations; accept a documented environment variable instead.if (!r.types.includes(cat)) { allNewPass = false; console.log('NEW FAIL:', cat, '|', input.slice(0, 50)); }Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log('input:', JSON.stringify(t2));Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log('input:', JSON.stringify(t1));Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.const t3 = '<!DOCTYPE foo [<!ENTITY xxe SYSTEM "file:///etc/passwd">]>';Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.console.log('input:', JSON.stringify(t3));Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.* 启动: node mcp-server-http.js [--port 8099]Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.console.log('input:', JSON.stringify(t4));Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.script: path.join(__dirname, 'mcp', 'mcp-server-http.js'),Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.'../../etc/passwd',Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.console.log(output.gate.action); // 'rewrite'Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.const serverPath = path.join(HF_DIR, 'mcp', 'mcp-server-http.js');Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.console.log(output);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.'<!DOCTYPE foo [<!ENTITY xxe SYSTEM "file:///etc/passwd">]>',Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.const crisisKeywords = ['自杀','自伤','想死','活不下去','不想活','suicide','kill myself','end my life','hurt myself','不想活了','活着没有意义'];Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.// 检测可用端口,传给 mcp-server-http.js 避免竞态Fix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.'execsync', 'spawnsync', 'sudo', 'chmod 777', 'rsync --delete',Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.'AKIAIOSFODNN7EXAMPLE',Fix: Never read or enumerate credential locations; accept a documented environment variable instead.3. Update `AGENTS.md` if changing the public APIFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.'AKIAIOSFODNN7EXAMPLE',Fix: Never read or enumerate credential locations; accept a documented environment variable instead.console.log(status, '|', cat, '(' + inputs.length + ' tested)');Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.'../../etc/passwd',Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.'<!DOCTYPE foo [<!ENTITY xxe SYSTEM "file:///etc/passwd">]>',Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.['xxe', '<!DOCTYPE foo [<!ENTITY xxe SYSTEM "file:///etc/passwd">]>'],Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.try { fs.chmodSync(dir, 0o700); } catch(e) { /* chmod may fail on some systems */ }Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.'<!DOCTYPE foo [<!ENTITY xxe SYSTEM "file:///etc/passwd">]>',Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.'AKIAIOSFODNN7EXAMPLE',Fix: Never read or enumerate credential locations; accept a documented environment variable instead.'rm -rf', 'curl', 'wget', '| sh', '| bash', 'child_process',Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.const ZERO_WIDTH_RE = /[\u200B\u200C\u200D\u2060\uFEFF\u00AD]/;Fix: Put hosts, commands and strings in plain source. Decoding at runtime looks identical to malware and costs points on its own.Cost to the agent
Tokens estimated at four characters each. Skills load their instruction text when triggered; the figure is what that costs.
Known vulnerabilities
Vulnerability advisories (OSV) cover npm and PyPI packages; this registry has no advisory database.
What would make this Verified
35 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%- Unclaimed publisher≈ +8 on the totalClaim yun520-1: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
- Access to sensitive file paths≈ +4 on the totalStop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
- Privileged sudo command≈ +4 on the totalBuild commands from fixed arguments; do not interpolate untrusted strings into a shell.
- AWS access key pattern detected≈ +4 on the totalNever read or enumerate credential locations; accept a documented environment variable instead.
- MCP server using network transport (SSE/HTTP)≈ +2 on the totalNamespace tool names and keep tool descriptions literal; no instructions to the agent inside them.
- File type combined with upload action≈ +2 on the totalRemove the call, or declare the host in frontmatter and explain in the README what is sent and why.