Ae1
- Category
- analysis-evasion
- Confidence
- 100% confidence
- Finding
Referenced artifact was not completely inspected
- Content
md After choosing the workflow, run `node scripts/check-miao-viz.mjs --print-path`.
Security audit
Security checks for vulnerabilities and agentic risk
The skill is mostly coherent for local report and media artifact creation, but its export setup can load browser automation code from broad local locations during a nominal check, and some install paths are not fully pinned.
Install from a trusted, versioned bundle where possible, avoid the unpinned npx compatibility path unless you trust the source, and be careful running export setup inside an untrusted workspace because it may load local Playwright code. Approve CLI, Playwright, browser, and remote media setup only when you need those features, and do not upload sensitive raw data to optional media generation.
Referenced artifact was not completely inspected
After choosing the workflow, run `node scripts/check-miao-viz.mjs --print-path`.
Referenced artifact was not completely inspected
`node scripts/setup-export.mjs --host <host>` as a read-only check. In Pi use
Skill manipulates agent memory, state, or stored context. Memory corruption can alter personality, override safety rules, or cause unpredictable behavior.
| Milestones | `timeline-path` | At least 3 milestones |
| Shared-criteria comparison | `concept-contrast` | Include dimension keys beyond `label` and `text` |
| Meaningful composition | `part-to-whole` | Values form a real whole |
| Before/after state | `before-after` | Clear state boundary |
| Four quadrants | `tradeoff-matrix` | Exactly 4 suitable items |
| Ranking | `ranked-list-chart` | At least 3 ranked items |
| Architecture or dependency flow | `system-diagram` | Explicit `nodes` and `edges` |
The skill explicitly instructs the agent to execute local commands, inspect environment-dependent host/runtime details, and potentially install software, but it declares no explicit tool scope or permissions boundary. That mismatch can cause an agent runtime to grant broader capabilities than intended or make reviewers unable to verify whether command execution, environment inspection, and installation behaviors are properly constrained.
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
- Use the resolved Miao Vision CLI for ordinary artifacts. Media workflows may
use the checked ai-cli only after the user confirms charges and the exact
prompt/reference upload scope. Installation requires separate approval.
- Create only the requested artifact. Overwriting, deletion, publication,
messaging, account changes, and repository operations need explicit authority.
- Let the agent author specs; use the CLI for analysis, validation, and rendering.
Do not edit generated HTML/PDF as source or call an LLM from the CLI.
The install instructions recommend npx skills add ... without pinning an exact package version or integrity, which means execution can depend on whatever package version is resolved at install time. That creates a supply-chain risk: a compromised upstream package, typosquat, or unexpected newer release could cause unreviewed code to run during installation in a local shell-capable environment.
The install command uses npx skills add ... without pinning an explicit version, so the fetched package or tool behavior can change over time and may introduce supply-chain risk. Because this is an installation instruction for a plugin/skill, users may execute it directly, making any compromise or unexpected upstream update impactful.
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.
scoped revision, or export a selected version.
The package checks for the CLI version pinned by `cli-compatibility.json`. It
does not download or upgrade the CLI without approval. The Review Viewer binds
only to `127.0.0.1`; its URL is not a public sharing URL.
## Global CLI and exports
Line L24 instructs the agent to append a Chinese-language string to the user's prompt in append_defaults mode. This forces a specific language/locale behavior without user opt-in or any stated justification, which matches the language-policy violation criteria.
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.
4. Ask them to restart or re-enter the Agent environment so it inherits the variable.
5. Verify with `node scripts/check-ai-media.mjs image` or `video`. Do not use a paid generation request as a configuration test.
Never ask the user to paste the Key. Do not read, print, copy, persist, or pass its value in command arguments. Do not write it to the repository or a repository `.env`. Supplier-direct keys are not part of the supported first release.
## Price and Data Notice
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.
| `nextAction` | Required behavior |
|---|---|
| `instantiate` | Instantiate the Spec without asking another question. |
| `confirm` | Summarize the form, target, consequential assumptions, and safety warning; obtain confirmation before using `--confirm-plan`. |
| `clarify` | Ask exactly `clarification.question`, using its options. Update the Draft Brief from the answer and rerun `artifact plan`; do not patch the Plan. |
| `stop` | Explain the first selection reason and stop; do not guess another workflow. |
The example confirmation text is hard-coded in Chinese, which can steer the agent to respond in Chinese even when the user did not request that language. In a multilingual skill, this can cause user confusion, consent friction, or miscommunication around privacy/safety confirmation prompts, especially if the user cannot fully understand the approval request.
The instruction to set locale only to en or zh-CN forces a narrow language/locale policy. Because the rule applies to all file types, this is a policy concern unless the skill explicitly offers a language choice or explains why the locale restriction is necessary.
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.
listed reasons before sharing. `blocked` must not be delivered. Do not regenerate business meaning
from `changes.json` when a period outcome brief exists.
Generate one client report per update. Do not ask the user to choose a client, operator, or manager
edition. Keep the readable body client-facing; evidence, methodology, data-quality details,
anomalies, and review reasons belong in the collapsed diagnostics appendix. Only expose those
details separately when the user requests diagnostics.
The runtime searches multiple broad locations, including the current workspace and host-specific directories, then treats any discovered Playwright package as trusted executable code. This creates a module-hijacking surface where a malicious or trojanized Playwright package in the workspace or host path could be loaded and executed when export features are used.
This code dynamically resolves and loads Playwright from the filesystem and later uses its Chromium launcher, which means arbitrary JavaScript from the resolved package executes in-process. In a hostile workspace or host environment, an attacker who can place or replace that module can gain code execution through the skill's export path.
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
VERSION=$(node -e 'process.stdout.write(require(process.argv[1]).recommendedCliVersion)' "$SCRIPT_DIR/../cli-compatibility.json")
if ! npm install -g "@miao-vision/cli@$VERSION"; then
echo 'Global npm installation failed. Check your npm prefix permissions or use a user-managed Node installation; no sudo was attempted.' >&2
exit 1
fi
node "$SCRIPT_DIR/check-miao-viz.mjs" --require-recommended --print-path
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
VERSION=$(node -e 'process.stdout.write(require(process.argv[1]).recommendedCliVersion)' "$SCRIPT_DIR/../cli-compatibility.json")
if ! npm install -g "@miao-vision/cli@$VERSION"; then
echo 'Global npm installation failed. Check your npm prefix permissions or use a user-managed Node installation; no sudo was attempted.' >&2
exit 1
fi
node "$SCRIPT_DIR/check-miao-viz.mjs" --require-recommended --print-path
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
VERSION=$(node -e 'process.stdout.write(require(process.argv[1]).recommendedCliVersion)' "$SCRIPT_DIR/../cli-compatibility.json")
if ! npm install -g "@miao-vision/cli@$VERSION"; then
echo 'Global npm installation failed. Check your npm prefix permissions or use a user-managed Node installation; no sudo was attempted.' >&2
exit 1
fi
node "$SCRIPT_DIR/check-miao-viz.mjs" --require-recommended --print-path
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
VERSION=$(node -e 'process.stdout.write(require(process.argv[1]).recommendedCliVersion)' "$SCRIPT_DIR/../cli-compatibility.json")
if ! npm install -g "@miao-vision/cli@$VERSION"; then
echo 'Global npm installation failed. Check your npm prefix permissions or use a user-managed Node installation; no sudo was attempted.' >&2
exit 1
fi
node "$SCRIPT_DIR/check-miao-viz.mjs" --require-recommended --print-path
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
VERSION=$(node -e 'process.stdout.write(require(process.argv[1]).recommendedCliVersion)' "$SCRIPT_DIR/../cli-compatibility.json")
if ! npm install -g "@miao-vision/cli@$VERSION"; then
echo 'Global npm installation failed. Check your npm prefix permissions or use a user-managed Node installation; no sudo was attempted.' >&2
exit 1
fi
node "$SCRIPT_DIR/check-miao-viz.mjs" --require-recommended --print-path
This markdown includes substantial Chinese-language instructions in an otherwise English document, which can impose a locale or language expectation on users. The policy allows locale constraints only when clearly documented and justified, or when the user is given a choice; here the mixed-language behavior is not framed as an explicit opt-in choice.
The error guidance tells users to run '/miao-viewer setup', which conflicts with the manifested skill name and purpose centered on 'miao-vision'. This is not merely incomplete wording; it actively points to a different command surface, which can mislead users about which skill or component is actually responsible for the behavior.
The fallback guidance for missing Playwright again references '/miao-viewer setup' rather than a miao-vision command or clearly documented external dependency. Repeated contradictory messaging increases the mismatch between the documented skill intent and the operational instructions exposed by the code.
The launch error remediation text points users to '/miao-viewer setup', which contradicts the stated skill name and can cause confusion about which tool is meant to be invoked. Because it is repeated in operational error handling, this is an active documentation-to-code intent mismatch rather than a minor omission.
Detected: suspicious.dangerous_exec