CtrlK
BlogDocsLog inGet started
Tessl Logo

ashare-pre-st-filter

A 股 ST/*ST 风险预测框架 — 基于最新中报/三季报或业绩预告/快报,预测下一财年是否会因营收、利润、净资产、分红不达标而被风险警示,并将新浪监管处罚记录作为独立证据面纳入风险等级。仅适用于 A 股,不预测财务造假。

56

Quality

71%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./agent/src/skills/ashare-pre-st-filter/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

63%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

An unusually dense, high-value skill body: nearly every line encodes non-obvious domain knowledge (API quirks, unit pitfalls, dedup traps, regulatory thresholds) with a clear step sequence and strong error-recovery paths. The main costs are length-driven redundancy (duplicated script usage, dividend rules, R4 rationale, and interface tables inlined in a ~500-line monolith) rather than wasted explanation.

Suggestions

Deduplicate: keep the sina script invocation and the dividend dedup/量纲 rule in one place and cross-reference from 禁止事项 and the mapping table, cutting maybe 15% of tokens.

Merge 依赖的 tushare 接口清单 into the 数据需求映射表 (add an 积分 column) — two tables list the same interfaces.

Move the E2 rulebook (windows, subject weighting, level tables) or the audit-URL table into references/ files and keep SKILL.md as an overview with one-level-deep links.

DimensionReasoningScore

Conciseness

Most content earns its place — tushare/akshare field quirks, threshold tables, dedup rules, and unit-conversion pitfalls are non-obvious domain knowledge Claude does not already have. But there is noticeable repetition that could be tightened: the sina script invocation appears twice (E2 section and 自带脚本 section), the dividend dedup rule is stated three times (mapping table, R3, 禁止事项), the R4 revenue-linkage rationale is explained twice (口径关键 and 为什么要叠加营收), and the interface list table in 依赖的 tushare 接口清单 largely duplicates the 数据需求映射表. This fits anchor 3 (mostly efficient, some tightening possible), not 2 — the padding is reinforcement of critical rules rather than explanation of things Claude already knows.

3 / 5

Actionability

Highly concrete: exact interface names and parameters, a copy-paste-ready script invocation (verified: the script exists and its --ts-code/--stock-name/--start-date/--end-date/--no-filter flags match), a worked formula (cash_div_tax / 10 × total_share), URL templates with {code6} substitution, and a largely executable end-to-end Python skeleton. It falls short of anchor 5 because the skeleton explicitly elides the R1–R4 computation ('# ... 略'), so it is not fully copy-paste ready; the elision is justified as a drift-reduction skeleton, which keeps it clearly above anchor 3's pseudocode level.

4 / 5

Workflow Clarity

The sequence is explicit and well-gated: M0 current-state check with a branch table (继续/结束 per status), board classification before threshold selection, evidence-priority tiers with forced confidence downgrades for mechanical annualization, and a mandatory output template that doubles as a checklist. Fallback/error-recovery paths are specified (tushare→akshare with confidence downgrade, audit-missing → mandatory cninfo URLs, script failure → {'source':'unavailable'} handled gracefully). It is not 5 because there is no explicit validation checkpoint on computed results (e.g. sanity-checking the dividend total or re-verifying data freshness) — recovery handles missing inputs rather than validating outputs.

4 / 5

Progressive Disclosure

The bundle is minimal and correctly wired: the only bundle file (scripts/fetch_sina_penalties.py) is real, linked with a working relative path, and its behavior (JSON output, error envelope, stdlib-only) is accurately described. However the SKILL.md itself runs ~500 lines as a monolith — the data mapping table, the E2 rulebook, and the audit-URL table are candidates for references/ files, and the interface-list section duplicates the mapping table. This matches anchor 3 (some structure, content that should be separate is inline), not 2 since the one reference that exists is clearly signaled and navigation within the doc is easy via headers.

3 / 5

Total

14

/

20

Passed

Description

70%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong, highly specific description that clearly communicates a distinct niche (A-share ST/*ST risk prediction with named data sources and criteria). Its main weakness is the absence of an explicit 'Use when...' trigger clause and of common trigger synonyms like 退市风险/带帽, which cap completeness and trigger-term quality.

Suggestions

Add an explicit trigger clause, e.g. 'Use when the user asks about a stock's ST/*ST 风险, 退市风险, or 风险警示 (e.g. "分析 000729.SZ 的 ST 风险", "600xxx 下个年报会不会被 ST")' — this would lift completeness from 3 to 5.

Include the natural synonyms users actually say — 退市风险, 带帽/摘帽 — alongside ST/*ST to improve trigger-term coverage.

Optionally state the deliverable ('输出风险等级 + 预测可信度双轴结论') to close the minor specificity gap.

DimensionReasoningScore

Specificity

The description lists several concrete actions with named inputs and criteria: "基于最新中报/三季报或业绩预告/快报,预测下一财年是否会因营收、利润、净资产、分红不达标而被风险警示" and "将新浪监管处罚记录作为独立证据面纳入风险等级". It stops short of anchor 5 only because it does not state the output form (dual-axis risk level + confidence) or the concrete deliverable, so coverage has minor gaps rather than being comprehensive.

4 / 5

Completeness

The 'what' is clear and detailed, but there is no explicit trigger clause equivalent to 'Use when...' — only a negative scope statement ("仅适用于 A 股,不预测财务造假"), which limits when-guidance rather than providing positive triggers. Per the judging guideline, a missing 'Use when...' clause caps completeness at 3; it is not 4 because the 'when' is not just implicit but actively absent, and not 2 because the 'what' is unambiguous and rich.

3 / 5

Trigger Term Quality

Good natural-term coverage: users asking about "ST/*ST", "风险警示", "中报/三季报", "业绩预告/快报", "分红" would match naturally. A few common synonyms users actually say are missing — notably "退市风险" (which the body itself lists as an example trigger), "带帽/摘帽", and stock-code phrasing like "000729 的 ST 风险" — so it fits anchor 4 (good coverage, a few natural terms missing) rather than 5.

4 / 5

Distinctiveness Conflict Risk

A clear niche with distinct triggers: "A 股 ST/*ST 风险预测" plus specific data sources (新浪监管处罚记录, 中报/三季报/业绩预告) make it highly unlikely to fire for any other skill, and the explicit A-share-only boundary further reduces overlap. Minimal conflict risk — matches anchor 5.

5 / 5

Total

16

/

20

Passed

Validation

81%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 13 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (515 lines); consider splitting into references/ and linking

Warning

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

relative_links

Relative link issues: 4 suspicious

Warning

Total

13

/

16

Passed

Repository
HKUDS/Vibe-Trading
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.