Skill Trust Decision

smyx-child-focus-analysis-analysis

A legitimate child study-behavior analysis skill with minor supply-chain and doc-declaration gaps; no confirmed malicious behavior, credential theft, or code execution observed.

Install decision first Source: ClawHub Scanned: Aug 13, 2026
Files 31
Artifacts 12
Violations 1
Findings 4

Why this conclusion was reached

1/4 dimensions flagged
Block
Declared vs actual capability

1 undeclared or violating capabilities were inferred.

Review
Hidden execution and egress

12 lower-risk artifacts were extracted and still need context.

Pass
Attack chain and severe findings

There is no explicit malicious chain in the report.

Review
Dependencies and supply chain hygiene

4 dependency or supply-chain issues need attention.

What drove the risk score up

Missing requests dependency +10

skills/smyx_analysis/requirements.txt and skills/smyx_common/requirements.txt lack 'requests', which is imported and used in api_service.py, smyx_child_focus_analysis_analysis.py, and smyx_analysis.py. SKILL.md declares it under '前置准备' but sub-package requirements.txt files omit it.

Undeclared network:WRITE capability +8

SKILL.md maps allowed-tools as Bash→shell:WRITE and Read→filesystem:READ, but POST requests to lifeemergence.com APIs (with user tokens, open-ids, and potentially video data) are not declared.

Undeclared database:WRITE capability +5

SQLite database creation and user/token storage via dao.py and OpenIdUtil is not declared in SKILL.md. The database stores tokens and open-ids in the agent data directory.

Silent identity auto-creation +5

OpenIdUtil automatically generates a default open-id (User_xxxxxx) if none exists, writes it to the SQLite DB, and reuses it. This undeclared persistence mechanism is not mentioned in docs.

Subprocess commented out +-5

skills/smyx_common/scripts/skill.py contains commented-out subprocess.run() code for openclaw agent invocation; confirmed inactive.

Most important evidence

Medium Supply Chain

requests library used but not declared in sub-package requirements

The 'requests' library is imported and used in skills/smyx_analysis/scripts/smyx_analysis.py (line 23), skills/smyx_analysis/scripts/api_service.py, and skills/smyx_common/scripts/util.py (line 11), but is absent from skills/smyx_analysis/requirements.txt and skills/smyx_common/requirements.txt. Only pydash==8.0.6, SQLAlchemy==2.0.46, and PyYAML==6.0.3 are declared. The top-level SKILL.md mentions requests>=2.28.0 but this is not propagated to sub-package requirement files.

skills/smyx_analysis/requirements.txt:1
Add 'requests>=2.28.0' to both skills/smyx_analysis/requirements.txt and skills/smyx_common/requirements.txt. Pin to a specific version.
Low Doc Mismatch

Network WRITE capability not declared in allowed-tools mapping

SKILL.md maps allowed-tools as Bash→shell:WRITE and Read→filesystem:READ, but does not declare that the skill makes POST requests with Bearer tokens, open-ids, and user data to remote lifeemergence.com APIs. Data exfiltration scope includes: video URL parameters, open_id, user tokens, and analysis results.

SKILL.md:1
Update allowed-tools to include network:WRITE and document what user data is transmitted to external services.
Low Sensitive Access

Silent identity creation and persistence not declared

OpenIdUtil.resolve_current_open_id() in skills/smyx_common/scripts/util.py auto-creates a persistent default user identity (User_xxxxxx) if none exists, stores it in a SQLite database, and reuses it across sessions. This automatic identity generation is not mentioned in SKILL.md's capability or behavior sections.

skills/smyx_common/scripts/util.py:338
Declare the automatic identity creation behavior in SKILL.md or document it as an internal mechanism.
Low Priv Escalation

SQLite database write to agent data directory not declared

The dao.py module creates and writes to a SQLite database (smyx-common-claw.db) in the agent's data directory, storing user tokens, open-ids, and metadata. This database:WRITE behavior is not declared in SKILL.md.

skills/smyx_common/scripts/dao.py:96
Declare database:WRITE capability in SKILL.md if it should be listed, or document the local persistence mechanism.

Declared capability vs actual capability

Filesystem Pass
Declared READ
→
Inferred READ
scripts/smyx_child_focus_analysis_analysis.py:37 reads local video files
Filesystem Pass
Declared NONE
→
Inferred WRITE
skills/smyx_common/scripts/dao.py:96 writes SQLite DB to agent data directory
Network Block
Declared READ
→
Inferred WRITE
skills/smyx_common/scripts/util.py:261-267 POSTs requests with tokens and data to https://open.lifeemergence.com
Environment Pass
Declared NONE
→
Inferred READ
skills/smyx_common/scripts/config.py:89-93 reads OPENCLAW_SENDER_OPEN_ID, OPENCLAW_SENDER_USERNAME, FEISHU_OPEN_ID
Database Pass
Declared NONE
→
Inferred WRITE
skills/smyx_common/scripts/dao.py:87-130 creates SQLite DB, stores user tokens/open-ids
Shell Pass
Declared NONE
→
Inferred NONE
skills/smyx_common/scripts/skill.py:32-62 subprocess code is fully commented out

Suspicious artifacts and egress

Medium External URL
https://lifeemergence.com/sample.html

SKILL.md:34

Medium External URL
https://clawhub.ai/user/smyx-sunjinhui

skill-card.md:9

Medium External URL
https://clawhub.ai/smyx-sunjinhui/skills/smyx-child-focus-analysis-analysis

skill-card.md:35

Medium External URL
http://192.168.1.234:9601/smyx-open-api

skills/smyx_common/scripts/config-dev.yaml:2

Medium External URL
http://192.168.1.234:4100

skills/smyx_common/scripts/config-dev.yaml:3

Medium External URL
http://192.168.1.234:7070/jeecg-boot-xzgz

skills/smyx_common/scripts/config-dev.yaml:4

Medium External URL
https://livemonitortest.lifeemergence.com/smyx-open-api

skills/smyx_common/scripts/config-test.yaml:2

Medium External URL
http://livemonitortest.lifeemergence.com

skills/smyx_common/scripts/config-test.yaml:3

Medium External URL
https://healthtest.lifeemergence.com/jeecg-boot-xzgz

skills/smyx_common/scripts/config-test.yaml:4

Medium External URL
https://lifeemergence.com/jeecg-boot-xzgz

skills/smyx_common/scripts/config.yaml:4

Medium External URL
https://open.lifeemergence.com/smyx-open-api

skills/smyx_common/scripts/config.yaml:5

Medium External URL
http://livemonitor.lifeemergence.com

skills/smyx_common/scripts/config.yaml:6

Dependencies and supply chain

PackageVersionSourceKnown vulnNotes
pydash 8.0.6 pip No Pinned in sub-package requirements.txt
SQLAlchemy 2.0.46 pip No Pinned in sub-package requirements.txt
yaml 6.0.3 pip No Listed as 'yaml' in requirements.txt; PyYAML==6.0.3 pinned
requests * pip No MISSING from sub-package requirements.txt - used in code but not declared

File composition

31 files · 2718 lines
Python 18 files · 2363 linesMarkdown 4 files · 315 linesYAML 6 files · 29 linesText 2 files · 6 linesJSON 1 files · 5 lines
Files of concern · 4
skills/smyx_common/scripts/util.py Python · 718 lines
Silent identity creation and persistence not declared
skills/smyx_common/scripts/dao.py Python · 499 lines
SQLite database write to agent data directory not declared
SKILL.md Markdown · 178 lines
Network WRITE capability not declared in allowed-tools mapping · https://lifeemergence.com/sample.html
skill-card.md Markdown · 56 lines
https://clawhub.ai/user/smyx-sunjinhui · https://clawhub.ai/smyx-sunjinhui/skills/smyx-child-focus-analysis-analysis
Other files · config.py · skill.py · smyx_analysis.py · smyx_child_focus_analysis_analysis.py · api_service.py · skill.py +2

Security positives

No subprocess execution - commented-out subprocess code confirmed inactive in skills/smyx_common/scripts/skill.py
No obfuscation detected - no base64, eval(), or dynamic code execution found
No credential theft - tokens stored locally, not exfiltrated; no harvesting of ~/.ssh, ~/.aws, or .env files
No direct IP C2 communication - all external URLs resolve to legitimate domain lifeemergence.com
Dependencies are version-pinned in sub-packages (pydash==8.0.6, SQLAlchemy==2.0.46, PyYAML==6.0.3)
skill-card.md already acknowledges data transmission to external services and known risks
No hidden HTML comments, no prompt injection instructions found
No supply-chain typosquatting or malicious package references detected
No persistence mechanisms (no cron jobs, startup hooks, or backdoor installation)