novel-architect@1.2.0
CAUTION· static onlyPublisher claims: "爽文小说全流程工坊:整合 FBS 工作流 + 爽文生成器。从方向提炼 → 大纲规划 → 逐章生成 → 质检收口,全程追踪。Trigger: 用户提及写小说/写书/章节/大纲/爽文/写作/架构。" 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-15 and scored it 54/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: Destructive file system command detected; 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
denyExamples: ['git reset --hard', 'rm -rf', 'del /f /s'],Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.{ id: 'self-harm', level: 'high', re: /(自杀|自残|kill myself|suicide)/i },Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.'~/.ssh',Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.'~/.gnupg',Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.'/etc/shadow'Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.'~/.aws',Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.'/etc/passwd',Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.console.log(`[tool-output-budget-gate] ${out.message}`);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log("[P0-Audit] 7.6/9 skipped: tool-output-budget-gate");Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(`[file-growth-guard] output=${out.outputPath}`);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.node style-learning.mjs adapt user123 --profile-path ./style-profile.json --content-file draft.md --output-path adapted.mdFix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(`💾 [U8-P1] 关联数据已保存: ${outputPath}`);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(' node output-validator.mjs --dialog-history <dialog-history-file> [type]');Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(JSON.stringify(output, null, 2));Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(`搜索日志已保存到: ${options.output}`);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(`风格画像已保存: ${options.outputPath}`);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(' node output-validator.mjs --dialog-history .fbs/dialog-history.json');Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(' node output-validator.mjs <output-file> <type>');Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(' ✅ audit:garble (post-pack) 通过');Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(' node output-validator.mjs --list-types');Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(' ✅ audit:encoding (post-pack) 通过');Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(JSON.stringify(output, null, 2));Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(`[midterm-execution-chain] report=${out.outputPath}`);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log('记忆报告已导出:', exportResult.outputPath);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log("[P0-Audit] 7.6/9 tool-output-budget-gate");Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(`Post-pack 编码报告:${POSTPACK_ENCODING_REPORT_PATH}`);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(' ⏭️ tool-output-budget-gate 已跳过(FBS_PACK_SKIP_TOOL_BUDGET=1)');Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(`[runtime-nudge] output=${out.outputPath}`);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(`适配后的内容已保存: ${options.outputPath}`);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(`输出文件:${OUTPUT_PATH}`);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.if (out.outputPath) console.log(`[retro-to-skill-candidates] output=${out.outputPath}`);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(` 输出方式: ${profile.preferences.output || '未设置'}`);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(`风格画像已保存: ${result.outputFile}`);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(`[tool-output-budget-gate] report=${out.reportPath}`);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log('快照已导出:', result.outputFile);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.node style-learning.mjs save user123 --profile-path ./style-profile.json --output-path ./saved-profile.jsonFix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(`\n${C.bold}${C.cyan}—— 调试扩展输出(--verbose-output)——${C.reset}`);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(' node output-validator.mjs output.txt esmSelfCheck');Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(JSON.stringify(output, null, 2));Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(`Post-pack 乱码报告:${POSTPACK_GARBLE_REPORT_PATH}`);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(`[tool-output-budget-gate] status=${out.status} total=${out.totals?.totalMb ?? '?'}MB`);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(' ✅ tool-output-budget-gate');Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.* 前置:已在本机执行 `npx clawhub@latest login`(或 `clawhub login --no-browser --token <API token>`)。Fix: Pin versions and sources; vendor anything fetched at install time.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
26 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%- Unclaimed publisher≈ +8 on the totalClaim z625662197: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
- Destructive file system command detected≈ +4 on the totalBuild commands from fixed arguments; do not interpolate untrusted strings into a shell.
- 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.
- Process kill command≈ +2 on the totalBuild commands from fixed arguments; do not interpolate untrusted strings into a shell.
- 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.
- npx invocation of non-well-known package≈ +2 on the totalPin versions and sources; vendor anything fetched at install time.