diff --git a/.claude/skills/parse-book/scripts/parse_health.py b/.claude/skills/parse-book/scripts/parse_health.py index b9a051c..574398f 100644 --- a/.claude/skills/parse-book/scripts/parse_health.py +++ b/.claude/skills/parse-book/scripts/parse_health.py @@ -136,8 +136,10 @@ def sec_health(conn): for v in (fields or {}).values(): if not isinstance(v, list): continue - bodies = [pref_re.sub("", str(x)) for x in v] - n_tail += sum(1 for x in v if tail_re.search(str(x).rstrip())) + # 演变历程现在是结构化对象数组;只扫描字符串数组,避免 dict 的 repr 末尾 `}` 被误报为残渣。 + text_values = [x for x in v if isinstance(x, str)] + bodies = [pref_re.sub("", x) for x in text_values] + n_tail += sum(1 for x in text_values if tail_re.search(x.rstrip())) n_pref += sum(1 for i, a in enumerate(bodies) if len(a) > 80 and any( j != i and b.startswith(a) and len(b) > len(a) for j, b in enumerate(bodies))) lines.append(f" 升格卡尾部残渣:{n_tail}{' ⚠' if n_tail else ' ✓'}")