feat: expand deai writing checks
GoodBuddy Agents / Validate Agent source (push) Canceled after 0s
GoodBuddy Agents / Build Linux arm64 Agent (push) Canceled after 0s
GoodBuddy Agents / Build Linux x64 Agent (push) Canceled after 0s
Cross-platform packages / Validate source (push) Canceled after 0s
Cross-platform packages / Authorize desktop packaging (push) Canceled after 0s
Cross-platform packages / linux arm64 (push) Canceled after 0s
Cross-platform packages / macos arm64 (push) Canceled after 0s
Cross-platform packages / windows arm64 (push) Canceled after 0s
Cross-platform packages / linux x64 (push) Canceled after 0s
Cross-platform packages / macos x64 (push) Canceled after 0s
Cross-platform packages / windows x64 (push) Canceled after 0s
Cross-platform packages / Publish GitHub and OSS release (push) Canceled after 0s
GoodBuddy Agents / Validate Agent source (push) Canceled after 0s
GoodBuddy Agents / Build Linux arm64 Agent (push) Canceled after 0s
GoodBuddy Agents / Build Linux x64 Agent (push) Canceled after 0s
Cross-platform packages / Validate source (push) Canceled after 0s
Cross-platform packages / Authorize desktop packaging (push) Canceled after 0s
Cross-platform packages / linux arm64 (push) Canceled after 0s
Cross-platform packages / macos arm64 (push) Canceled after 0s
Cross-platform packages / windows arm64 (push) Canceled after 0s
Cross-platform packages / linux x64 (push) Canceled after 0s
Cross-platform packages / macos x64 (push) Canceled after 0s
Cross-platform packages / windows x64 (push) Canceled after 0s
Cross-platform packages / Publish GitHub and OSS release (push) Canceled after 0s
The bundled deai-writing skill now detects additional template patterns, unsupported attribution, role-slot prose, engineering metaphors, and absolute claims. Its JSON report also summarizes findings by level and category while preserving GoodBuddy's cross-platform Python guidance. Release note: 中文“去 AI 味”审校新增分析套话、模糊归因、角色槽位、工程黑话和绝对化承诺等检查,并提供按分类汇总的扫描结果。
This commit is contained in:
@@ -219,6 +219,19 @@ def collect_files(targets, exts):
|
||||
return list(dict.fromkeys(out))
|
||||
|
||||
|
||||
def summarize_findings(findings):
|
||||
"""Count findings by level and category for CI and agent consumers."""
|
||||
counts = {LEVEL_BLOCK: {}, LEVEL_REVIEW: {}}
|
||||
for finding in findings:
|
||||
level_counts = counts[finding["level"]]
|
||||
category = finding["category"]
|
||||
level_counts[category] = level_counts.get(category, 0) + 1
|
||||
return {
|
||||
level: dict(sorted(category_counts.items()))
|
||||
for level, category_counts in counts.items()
|
||||
}
|
||||
|
||||
|
||||
def main():
|
||||
ap = argparse.ArgumentParser(description="中文正式文档 AI 味扫描")
|
||||
ap.add_argument("targets", nargs="+", help="待扫描的文件或目录")
|
||||
@@ -271,6 +284,7 @@ def main():
|
||||
|
||||
n_block = sum(1 for f in all_findings if f["level"] == LEVEL_BLOCK)
|
||||
n_review = len(all_findings) - n_block
|
||||
by_category = summarize_findings(all_findings)
|
||||
|
||||
if args.json:
|
||||
print(json.dumps({
|
||||
@@ -278,6 +292,7 @@ def main():
|
||||
"requested_files": len(files),
|
||||
"block": n_block,
|
||||
"review": n_review,
|
||||
"by_category": by_category,
|
||||
"errors": errors,
|
||||
"findings": all_findings,
|
||||
}, ensure_ascii=False, indent=2))
|
||||
|
||||
Reference in New Issue
Block a user