CF A-stock-report
A股数据驱动型报告自动生成与推送系统,支持晨报 / 收盘小结 / 晚报 / 盘中预警 / IPO周报 / 财经周末版。内置投资者情绪打分(6维度,满分100)与AI后市展望。
As a process F 38/100 · Will not run — References files that are not bundled: knowledge/changelog/README.md, knowledge/changelog/v3.5.1.md, knowledge/changelog/v3.4.4.md
ProcedureData and analyticsInfrastructuretype and topics are labelled automatically from the skill text
How to improve
- Say in the description WHEN to use the skill ("use when…", example requests): that is the agent's main cue.
- The SKILL.md body is over 5,000 tokens: move reference detail into references/ and load it when needed.
- The text references files that are not there: add them or drop the references.
For the model run — optional
- Your own cases (evals/evals.json, 4–6 real requests with expected answers): the full check would then run those instead of a model-drafted suite.
- A spec.yaml with trigger phrases and assertions — a behaviour contract for CI; `skilltest init` writes a template.
Guard findings · 12
✓ No critical or high findings
Medium and low: 12
-
low Exfiltration
read-dotenvcron_jobs/cron_mirror.json:15Reads a .env file (detector / deny-list definition)"prompt": "source /workspace/.env && python3 /root/.hermes/skills/A-stock-report/scripts/send_close_summary.py",
detector -
low Exfiltration
read-dotenvcron_jobs/cron_mirror.json:30Reads a .env file (detector / deny-list definition)"prompt": "source /workspace/.env && python3 /root/.hermes/skills/A-stock-report/scripts/send_intraday_alert.py 2>&1",
detector -
low Exfiltration
read-dotenvcron_jobs/cron_mirror.json:56Reads a .env file (detector / deny-list definition)"prompt": "source /workspace/.env && python3 /root/.hermes/skills/A-stock-report/scripts/send_ipo_report.py",
detector -
low Exfiltration
read-dotenvscripts/check_consistency.py:191Reads a .env file (detector / deny-list definition; security demo / example)"""E. SKILL.md 主体(任务清单段之外)禁止出现 cron 表达式和 source .env 命令
detectordemo -
low Exfiltration
read-dotenvscripts/check_consistency.py:277Reads a .env file (detector / deny-list definition)v3.2.5 修复动机:v3.1.4 已把收盘小结/IPO 周报改成 `source .env && python3 send_*.py`
detector -
low Exfiltration
read-dotenvscripts/check_consistency.py:348Reads a .env file (detector / deny-list definition)print(f" source /workspace/.env && python3 /root/.hermes/skills/A-stock-report/scripts/send_XXX.py 2>&1")
detector -
low Exfiltration
read-dotenvSKILL.md:140Reads a .env file (detector / deny-list definition)所有 6 个任务的完整命令(`source .env` + `python3 脚本路径` + 可选参数)都集中在 **`cron_jobs/cron_mirror.json` 的 `tasks.<name>.prompt` 字段**。
detector -
low Exfiltration
read-dotenvSKILL.md:151Reads a .env file# 2. 复制粘贴该命令到终端跑(已含 source .env + python3 路径 + 默认参数)
-
low Exfiltration
read-dotenvSKILL.md:531Reads a .env file (detector / deny-list definition)- **独立脚本型(3 个)**:收盘小结 / **盘中预警** / IPO 周报 — 无需 LLM,调度配置外置于 `cron_jobs/`,由 OpenClaw gateway 直接 `source .env && python3 ...` 跑脚本。盘中预警为每 5 分钟一次高频任务(必须无 LLM 介入)。
detector -
low Exfiltration
read-dotenvtemplates/evening.json:2Reads a .env file (detector / deny-list definition; security demo / example)"prompt": "1. 调用晚报数据采集脚本,将结果写入约定路径:\n source /workspace/.env && python3 /root/.hermes/skills/A-stock-report/scripts/collect_evening_data.py\n \n 采集内容:六大指数、亚太股市、两融余额、两融比例、沪深300 PE分位数、股市风险溢价(ERP)等
detectordemo -
low Exfiltration
read-dotenvtemplates/morning.json:2Reads a .env file (detector / deny-list definition; security demo / example)"prompt": "0. 【强约束 — LLM 必读】渲染晨报前必须先 cat /tmp/morning_data.json 读真实数字:\n cat /tmp/morning_data.json\n 然后仅用其中真实数字填充模板占位符(XXXXX.XX = price、+X.XX% = pct、XX.XX = vix.value 等)。\n 严禁凭模型知识/印象/历史样本自编数字(
detectordemo -
low Exfiltration
read-dotenvtemplates/weekend.json:2Reads a .env file (detector / deny-list definition; security demo / example)"prompt": "1. 用 batch_web_search 搜索以下内容(v3.4.3 2026/06/16 立 — 4 类查询 (经济政策/宏观数据/A 股重大事件/海外市场大事件) + 48h 时间窗 + 6-8 条 + 一句话摘要 + Q3-2 砍 [下周展望] 的 [外围市场] + [A 股预判] 段;v3.4.2 5 类 → 1 类;v3.4.1 1500 字 + 防幻觉 + 1
detectordemo
Files scanned: 24. Evidence is masked. Grey chips explain why severity was lowered.
Against the Agent Skills spec
- warning
name-formatname should be kebab-case (lowercase letters, digits, hyphens) - warning
description-no-whendescription does not say WHEN to use the skill (no "use when") - warning
body-longSKILL.md body ≈ 5079 tokens (recommended < 5000); move details to references/ - warning
missing-refreference to a missing file: knowledge/changelog/README.md - warning
missing-refreference to a missing file: knowledge/changelog/v3.5.1.md - warning
missing-refreference to a missing file: knowledge/changelog/v3.4.4.md - warning
missing-refreference to a missing file: knowledge/changelog/v3.3.5+5.md - warning
missing-refreference to a missing file: knowledge/changelog/v3.3.5+4.md - warning
missing-refreference to a missing file: knowledge/changelog/v3.3.5+3.md - warning
missing-refreference to a missing file: knowledge/changelog/v3.3.5+2.md - warning
missing-refreference to a missing file: knowledge/changelog/v3.3.5+1.md - warning
missing-refreference to a missing file: knowledge/changelog/v3.3.5.md - warning
missing-refreference to a missing file: knowledge/changelog/v3.3.4.md - warning
missing-refreference to a missing file: knowledge/changelog/v3.3.3.md - warning
missing-refreference to a missing file: knowledge/changelog/v3.3.2.md - warning
missing-refreference to a missing file: knowledge/changelog/v3.3.1.md - warning
missing-refreference to a missing file: knowledge/changelog/v3.3.0.md - warning
missing-refreference to a missing file: knowledge/changelog/v3.2.9.md - warning
missing-refreference to a missing file: knowledge/changelog/v3.2.8.md - warning
missing-refreference to a missing file: knowledge/changelog/v3.2.7.md - warning
missing-refreference to a missing file: knowledge/changelog/v3.2.6.md - warning
missing-refreference to a missing file: knowledge/changelog/v3.2.5.md - warning
missing-refreference to a missing file: knowledge/changelog/v3.2.4.md - warning
missing-refreference to a missing file: knowledge/changelog/v3.2.3.md - warning
missing-refreference to a missing file: templates/<task>.json - warning
missing-refreference to a missing file: templates/*.json - warning
missing-refreference to a missing file: templates/intraday.json
Process rating: all ten parameters 38/100
Will not run. References files that are not bundled: knowledge/changelog/README.md, knowledge/changelog/v3.5.1.md, knowledge/changelog/v3.4.4.md
- 0Tools and files. 24 referenced file(s) missing: knowledge/changelog/README.md, knowledge/changelog/v3.5.1.md, knowledge/changelog/v3.4.4.md
- 0Result and completion. Does not say what the result is
- 0Inputs and preconditions. Does not say what the process needs to start
- 20When it triggers. No condition that starts the skill
- 30Running it twice. 33 mutating operations with no state check
- 50Failures and branches. 0 branches, has a failure section
- 70Execution cost. Instruction body is 5079 tokens
- 100Steps. 57 steps
- 100Consistency. Name and required fields are in place
- 100Progress reporting. Reports progress
- low 13 top-level sections: this looks like several domains in one skill
- low The response is described with custom markup (3 tags): a typed call is more reliable
Everything here is measured from the skill text rather than judged by a model, so the numbers are checkable. A parameter weighs more when it is a more common reason for the process to stall.
Quality signals
- +5Description has no quoted example phrases that should trigger the skill
- +4Description does not say when NOT to use the skill (false activations)
- +3Description length 87: 120–800 characters recommended
- +3Output format is not stated: the model decides each time
- -223 emoji in the instructions: noise for the model
- -31 of 13 scripts are never mentioned in SKILL.md
- +1No license
- +2Single-language instructions
- +4Structure: 39 headings
- +3Step-by-step instructions: 57 items
- +4Has examples (11 code blocks)
- +4Reference files are cited in the instructions (2 of 2)
Quality base 70; lint remarks subtract, signals add up to 100. Result: 41.
External checks
ClawHub: clean
This skill appears to do what it says: automate A-share market reports and send them to WeCom, with some credential-handling and data-source caveats to review.
LLM: benign (high) · VirusTotal: · 20 Jun 2026