T05 · Unauthorized Access and Privilege Escalation
- Location
scripts/logic-analyzer.py:43- Finding
Unnecessary Automatic Loading of Environment Files
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is mostly a coherent Chinese novel-auditing tool, but it needs Review because it can cross into another local skill’s workspace/scripts and its dependency, environment, and file-output behavior is under-scoped.
Review before installing. Use it only on novel projects you trust, preferably in an isolated environment. Be cautious with the optional novel-master v2 integration because it runs code from another local skill path; only enable that after verifying the other skill and confirming the project path. Pin and install dependencies yourself rather than following broad pip prompts, and avoid running it in directories containing sensitive .env files.
scripts/logic-analyzer.py:43Unnecessary Automatic Loading of Environment Files
SKILL.md:25Unpinned and Inaccurately Documented Third-Party Dependencies
SKILL.md:47Unquoted User-Controlled Values in Documented Shell Commands
SKILL.md:190Execution of Mutable Scripts from an Unaudited External Skill
声明描述的是一个广义的小说Bug检查专家,覆盖逻辑漏洞、角色不一致、节奏问题和叙事Bug等多个维度;而代码几乎全部围绕“节奏”展开。它确实覆盖了声明中的一部分——节奏问题/叙事节奏质量,并且会输出分级问题、证据、修复建议和报告,这部分是吻合的。但代码没有实现对情节逻辑漏洞、人物设定一致性、角色行为前后矛盾等核心“Bug检查专家”能力,因此其实际能力范围显著窄于声明的核心承诺,属于描述与行为不符。另有一些附加能力如可视化、傅里叶分析虽不一定构成严重风险,但也未在声明中体现。综合判断为存在明显不匹配。
The skill is described as a professional-grade Chinese novel auditing tool and the usage/dependency sections reinforce Chinese-only operation. While a bilingual anchor is present, the actual README content and stated purpose constrain usage to Chinese without explicitly offering a user language choice or documenting the locale restriction as a justified region-specific requirement.
The README directs users to execute Python scripts from a different skill (~/.qclaw/skills/novel-master/scripts/...) to perform checks. That expands the trust boundary beyond this skill’s stated purpose and can cause an agent or user to run external code not reviewed as part of novel-bug-checker, creating a supply-chain style risk if the external skill is compromised or unexpectedly powerful.
The description explicitly limits the tool to 'auditing Chinese novel narrative quality,' which is a natural-language locale constraint. The file does not present this as an optional mode or explain a region/compliance reason, so it appears to force a specific language context.
The skill declares executable commands and instructs the agent to read files, invoke Python scripts, and access user-provided paths, but it does not declare an explicit tool scope or permission boundary. That increases the chance of over-broad file and environment access at runtime, especially because later sections also reference home-directory resources and external scripts.
The manifest description and title are entirely in Chinese, and the skill requires the jieba Chinese tokenizer, indicating the skill is designed around Chinese-language use. The file does not explicitly state that the skill is limited to Chinese novels or offer users a language/locale choice, so it imposes a locale constraint without opt-in.
The skill explicitly reaches into another skill's workspace and state under ~/.qclaw/workspace/novels/... and calls tooling from ~/.qclaw/skills/novel-master/scripts/. Cross-skill access breaks isolation boundaries and can expose private project state, metadata, and auxiliary tooling unrelated to the current user's immediate request, creating a strong risk of unauthorized data access and privilege expansion.
The example implies the skill may activate for any request to 'check plot issues' without specifying limits on supported inputs, outputs, or adjacent domains. This ambiguity makes prompt routing overly permissive and can let users steer the skill into unreviewed tasks, especially given the later examples that already show scope expansion.
The activation example uses a broad trigger ('激活小说Bug检查技能') without clear gating conditions, boundaries, or refusal criteria. In an agent setting, underspecified activation can cause the skill to engage on loosely related prompts, increasing the chance of unintended behavior, prompt routing errors, or use outside its intended domain.
技能清单将该技能描述为用于检查小说中的逻辑漏洞、角色一致性、节奏问题和叙事Bug,但本示例段落直接处理小说阅读器应用的 JSON 解析失败、API 响应格式变更和版本回退等软件工程问题。这不是对小说文本质量的检查实现细节,而是明显扩展到了应用运维/技术故障排查。
The documentation states that reports and artifacts are 'saved' and 'generated' without warning the user, confirming consent, or describing destination and overwrite behavior. In an agent environment, this normalizes silent file creation and potential overwriting, which can lead to data loss, privacy issues, or unexpected side effects on the host system.
This markdown file is entirely written in Chinese and does not indicate that the user can choose another language or that the skill is intentionally limited to a Chinese-speaking context. Under the language/locale policy rule, a skill that implicitly forces a specific language without opt-in can be a natural-language policy violation.
The manifest describes a skill for checking novels for logic holes, character inconsistency, pacing, and narrative bugs. However, this section documents a five-step framework using error messages, code snippets, runtime context, reproduction steps, and logs, which aligns with software bug diagnosis rather than literary analysis.
SQP-3 applies to all file types and covers language or locale policy violations in natural-language content. This guide presents all instructions exclusively in Chinese and does not indicate user opt-in, multilingual availability, or a region-specific justification for the language constraint.
This markdown reference file is written entirely in Chinese and does not indicate that language selection is optional or limited to a justified Chinese-only context. Under the natural-language policy rule, forcing a specific language without user opt-in can be a locale/language policy violation.
The file is entirely written as Chinese-only operational guidance, with no indication that users may choose another language or that the skill is restricted to a Chinese-language context. Under the language/locale policy, forcing a specific language without opt-in is a natural-language policy violation.
The manifest describes a 'novel bug checker' that checks logical漏洞、角色不一致、节奏问题或叙事Bug and provides graded reports. In this file, the implemented checks are limited to character consistency, timeline consistency, plot logic via simple regex patterns, and foreshadowing payoff checks; there is no pacing-analysis logic or broader narrative-quality analysis despite the broad claim.
This code file contains natural-language descriptions and CLI/help text entirely in Chinese, and later emits Chinese-only user-facing status/error messages. There is no visible opt-in, locale selection, or documented justification that the skill is intended only for Chinese-language users, which can violate language/locale policy requirements.
The top-level docstring says the script uses an '智能上下文理解系统 - 基于向量检索的上下文感知技术' and combines a rule engine with semantic similarity computation. In practice, the code initializes a TF-IDF vectorizer and an unused vector_store, but all implemented checks rely on regexes and a simple set-overlap similarity function; there is no retrieval pipeline or AI/model-backed context understanding.
This Python file contains user-facing natural-language content entirely in Chinese, including the main module docstring and later CLI help text, but it does not offer users any language/locale choice. Under the stated policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is justified, which is not documented here.
The manifest describes a novel bug-checking skill focused on analyzing narrative logic, character consistency, pacing, and story bugs. This code unconditionally loads a .env file via python-dotenv, introducing configuration/secret access capability that is not used elsewhere and is not justified by the stated text-analysis purpose.
The argparse description, examples, argument help strings, and printed status/error messages are all presented only in Chinese. Because these strings define the user interaction surface and do not provide a language option or justified region-specific scope, they violate the language/locale policy described in SQP-3.
This Python file contains user-facing natural language in the module docstring and command-line help/output exclusively in Chinese. Because the skill does not offer a language or locale choice, it effectively forces a specific language on users, which matches the language/locale policy-violation category.
The manifest describes a novel bug-checking expert that inspects text and provides graded reports and fix suggestions, but this script also performs persistent filesystem writes by creating a log file, saving visualization images, and writing markdown reports. While generating a report is aligned with the purpose, the additional automatic persistence of logs and chart files is a broader operational behavior than the manifest states.
The argparse description, help text, examples, and printed status/error messages are all Chinese-language user-facing strings. Since there is no flag or configuration to select another language, the script enforces a specific locale rather than offering user choice.