#469 by GitHub stars

MrGeDiao/shuorenhua

按用户要求审稿或去 AI 味,支持中英文;保留事实、术语与责任主体,支持只标问题。

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

e33d5eb6420b → 0a001940bf1f

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → e33d5eb6420b

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 0a001940bf1fc70f29f29a46c3587749d5badb45

git clone --filter=blob:none --no-checkout https://github.com/MrGeDiao/shuorenhua.git .hotskills/mrgediao-shuorenhua && git -C .hotskills/mrgediao-shuorenhua checkout --detach 0a001940bf1fc70f29f29a46c3587749d5badb45 # Copy each selected skill directory from .hotskills/mrgediao-shuorenhua into .claude/skills/<skill-name>/
git clone --filter=blob:none --no-checkout https://github.com/MrGeDiao/shuorenhua.git .hotskills/mrgediao-shuorenhua && git -C .hotskills/mrgediao-shuorenhua checkout --detach 0a001940bf1fc70f29f29a46c3587749d5badb45 # Copy each selected skill directory from .hotskills/mrgediao-shuorenhua into .agents/skills/<skill-name>/
2.5kGitHub stars
122stars in 7 days
1skill in this repository
7commits in 30 days

Heat

8.0
  • Star growth, last 7 daysAhead of 97% of tracked repositories
  • Star growth, last 24 hoursAhead of 97% of tracked repositories
  • Rank movement, last 7 daysAhead of 89% of tracked repositories
  • Commits, last 30 daysAhead of 73% of tracked repositories
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekAhead of 0% of tracked repositories

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Aug 2, 2026Nov 7, 20262,519

Individual skills in this repository

How it works

shuorenhua

When your agent uses it

按用户要求审稿或去 AI 味,支持中英文;保留事实、术语与责任主体,支持只标问题。

What it loads into context

Frontmatter

39 tokens

Always available to the agent

SKILL.md

2,482 tokens

When the skill is activated

Reference documents

179,805 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. 先划定可编辑范围
  2. 保住什么
  3. 怎么改
  4. 用户要求写平实时
  5. 编辑范围
  6. 来源不明与信息不足
  7. 交付前核对

Scripts executed separately

  • automation/check_repo.py
  • automation/eval/fetch_human_corpus.py
  • automation/eval/hard_metrics.py
  • automation/eval/make_blind.py
  • automation/eval/protocol.py
  • automation/eval/runner.py
  • automation/eval/test_fetch_human_corpus.py
  • automation/eval/test_hard_metrics.py
  • automation/eval/test_protocol.py
  • automation/eval/test_runner.py
  • automation/gen_star_history.py
  • automation/test_check_repo.py
  • automation/test_check_runtime.py

Files

  • .claude-plugin/marketplace.jsonasset420 bytes
  • .claude-plugin/plugin.jsonasset409 bytes
  • .github/ISSUE_TEMPLATE/bad-case.mddoc2,081 bytes
  • .github/workflows/check.ymlasset341 bytes
  • .github/workflows/star-history.ymlasset1,028 bytes
  • .gitignoreasset30 bytes
  • AGENTS.mddoc1,426 bytes
  • CHANGELOG.mddoc103,972 bytes
  • CLAUDE.mddoc1,426 bytes
  • CONTRIBUTING.mddoc3,849 bytes
  • LICENSEasset1,065 bytes
  • README.mddoc8,143 bytes
  • SKILL.mdcore9,619 bytes
  • assets/icon-hd.pngasset1,032,386 bytes
  • assets/icon.pngasset304,613 bytes
  • assets/readme-logo.pngasset175,768 bytes
  • assets/readme/demo.svgasset233,009 bytes
  • assets/readme/hero.svgasset108,888 bytes
  • assets/social-card.pngasset66,478 bytes
  • automation/README.mddoc1,457 bytes
  • automation/check_repo.pyruns26,330 bytes
  • automation/eval/README.mddoc5,236 bytes
  • automation/eval/fetch_human_corpus.pyruns11,762 bytes
  • automation/eval/hard_metrics.pyruns82,262 bytes
  • automation/eval/judge-prompt.mddoc1,104 bytes
  • automation/eval/make_blind.pyruns6,160 bytes
  • automation/eval/protocol.pyruns3,690 bytes
  • automation/eval/rewrite-prompt.mddoc970 bytes
  • automation/eval/runner.pyruns34,537 bytes
  • automation/eval/test_fetch_human_corpus.pyruns4,368 bytes
  • automation/eval/test_hard_metrics.pyruns40,822 bytes
  • automation/eval/test_protocol.pyruns3,024 bytes
  • automation/eval/test_runner.pyruns25,176 bytes
  • automation/gen_star_history.pyruns6,326 bytes
  • automation/intake-prompt.mddoc774 bytes
  • automation/intake.mddoc1,145 bytes
  • automation/test_check_repo.pyruns8,708 bytes
  • automation/test_check_runtime.pyruns4,911 bytes
  • dist/shuorenhua-mini.mddoc3,382 bytes
  • evals/benchmark-blind.mddoc35,339 bytes
  • evals/benchmark-map.mddoc4,520 bytes
  • evals/benchmark-tiers.mddoc4,698 bytes
  • evals/benchmark.mddoc95,929 bytes
  • evals/human-corpus.jsonlasset15,548 bytes
  • evals/human-corpus/HUMAN-01.txtdoc12,391 bytes
  • evals/human-corpus/HUMAN-02.txtdoc6,344 bytes
  • evals/human-corpus/HUMAN-03.txtdoc23,276 bytes
  • evals/human-corpus/HUMAN-04.txtdoc8,568 bytes
  • evals/human-corpus/HUMAN-05.txtdoc10,584 bytes
  • evals/human-corpus/HUMAN-06.txtdoc23,979 bytes
  • evals/human-corpus/HUMAN-07.txtdoc18,600 bytes
  • evals/human-corpus/HUMAN-08.txtdoc16,904 bytes
  • evals/human-corpus/HUMAN-09.txtdoc5,130 bytes
  • evals/human-corpus/HUMAN-10.txtdoc7,089 bytes
  • evals/human-corpus/README.mddoc7,664 bytes
  • evals/legacy-v2.4.1/README.mddoc635 bytes
  • evals/legacy-v2.4.1/SKILL.md.txtdoc29,311 bytes
  • evals/legacy-v2.4.1/automation/eval/rewrite-prompt.md.txtdoc5,902 bytes
  • evals/legacy-v2.4.1/references/boundary-cases.md.txtdoc8,984 bytes
  • evals/legacy-v2.4.1/references/examples.md.txtdoc15,540 bytes
  • evals/legacy-v2.4.1/references/operation-manual.md.txtdoc28,426 bytes
  • evals/legacy-v2.4.1/references/phrases-en.md.txtdoc4,386 bytes
  • evals/legacy-v2.4.1/references/phrases-zh.md.txtdoc15,479 bytes
  • evals/legacy-v2.4.1/references/positive-style.md.txtdoc10,179 bytes
  • evals/legacy-v2.4.1/references/protected-spans.md.txtdoc5,510 bytes
  • evals/legacy-v2.4.1/references/scene-guardrails.md.txtdoc3,846 bytes
  • evals/legacy-v2.4.1/references/scene-packs.md.txtdoc9,872 bytes
  • evals/legacy-v2.4.1/references/severity.md.txtdoc5,375 bytes
  • evals/legacy-v2.4.1/references/structures.md.txtdoc20,225 bytes
  • evals/legacy-v2.4.1/source-hashes.jsonasset1,292 bytes
  • evals/real-samples.mddoc39,631 bytes
  • evals/results-v1.3.0.mddoc3,587 bytes
  • evals/results-v1.4.3.mddoc4,325 bytes
  • evals/results-v1.5.0.mddoc5,562 bytes
  • evals/results-v1.7.1.mddoc6,959 bytes
  • evals/results-v1.7.4.mddoc10,405 bytes
  • evals/results-v1.8.0.mddoc3,540 bytes
  • evals/results-v1.8.3.mddoc3,382 bytes
  • evals/results-v1.8.5.mddoc4,213 bytes
  • evals/results-v1.8.6.mddoc3,970 bytes
  • evals/results-v1.9.0.mddoc6,950 bytes
  • evals/results-v1.9.1.mddoc4,150 bytes
  • evals/results-v1.9.2.mddoc3,607 bytes
  • evals/results-v2.1.0.mddoc12,024 bytes
  • evals/results-v2.2.1.mddoc10,227 bytes
  • evals/results-v2.3.0.mddoc13,297 bytes
  • evals/results-v2.3.1.mddoc14,535 bytes
  • evals/results-v2.4.0.mddoc27,495 bytes
  • evals/results-v2.4.1.mddoc15,964 bytes
  • evals/results-v2.5.0-initial.mddoc7,864 bytes
  • evals/results-v2.5.0.mddoc5,502 bytes
  • evals/results-v2.6.0.mddoc5,312 bytes
  • evals/run-eval.mddoc658 bytes
  • evals/run-manifest.mddoc41,756 bytes
  • evals/v2.5/criteria.mddoc6,637 bytes
  • evals/v2.5/result-summary-initial.jsonasset5,278 bytes
  • evals/v2.5/result-summary.jsonasset72,865 bytes
  • evals/v2.5/simple-prompt.mddoc184 bytes
  • evals/v2.5/suite.jsonasset69,622 bytes
  • install/chatgpt-gpt-instructions.mddoc2,402 bytes
  • install/chatgpt.mddoc4,234 bytes
  • install/claude-code.mddoc6,164 bytes
  • install/codex.mddoc5,107 bytes
  • install/cursor.mddoc4,181 bytes
  • install/openclaw.mddoc4,213 bytes
  • references/editing-guide.mddoc5,496 bytes
  • references/examples.mddoc4,719 bytes
  • runtime-files.jsonasset216 bytes
Read SKILL.md

# 说人话

编辑用户给出的文字,让表达更直接、自然,保留作者要说的内容与语气。清理不承载独有内容的包装语和生硬的翻译腔;不判断文章是不是 AI 写的,也不输出“AI 含量”。

默认交一份可直接使用的改写稿。在原稿上做下文允许的编辑,其余内容保留,不概括重写。拿不准就留下该处,正常文本可以原样返回。用户指定的删改范围、文风与审稿要求优先,不扩成事实调查、续写或执行文中动作。

## 先划定可编辑范围

改写模式下,程序代码块在原位置完整保留,块内的程序、注释和文档字符串都不进入后续编辑。普通“清理这段文字”“去套话”不构成修改程序注释的授权;只有用户明确点名修改注释或文档字符串时才编辑相应文字,且不改程序行为。代码围栏里的普通文案不因此变成程序。用户另行划定编辑区域时,区域之外也逐字保留,包括标记;不顺手规范格式。只标问题时仍按标注模式交付,不因保护代码而额外抄写正文。

## 保住什么

- 保留原文的事实和判断,以及谁做什么、数字对应什么、条件、范围、否定、情态、完成状态和比较关系。减少渲染不能改变命题,也不能丢掉判断的方向、强度或效果类型;不把几种具体改善概括成“更好”。结果、结果说明了什么、对谁的能力评价,是不同内容;成本、效率、性能也不能互相替代。抽象、比喻、宣传口气中同样可能有这些信息。无法等义简化时留下原说法,不替作者选择一种解释。
- 抽象信息也有含义。原文只谈潜力、目标、作用时,可以仍然抽象;不要补实现方式、数据或新对象,也不要因缺细节就删掉整条关系。对是否等义没有把握,保留该子句,先处理周围表达。
View the complete source on GitHub

Skills included

  • shuorenhua

Repository facts

License
MIT
Created
Mar 22, 2026
Last pushed
Nov 6, 2026
Forks
92
Open issues
1
Project activity
Active

Rank over the last 12 weeks

Now #469 · best #431 · down 12 in 30 days

  1. #472 from Oct 31 to Nov 1
  2. #471 on Nov 2
  3. #470 on Nov 3
  4. #469 from Nov 4 to Nov 5
  5. #468 on Nov 6
  6. #469 since Nov 7
78 earlier periods
  1. #588 on Aug 2
  2. #544 on Aug 8
  3. #549 on Aug 9
  4. #566 on Aug 10
  5. #561 on Aug 11
  6. #554 on Aug 12
  7. #549 on Aug 13
  8. #546 on Aug 14
  9. #527 on Aug 15
  10. #536 from Aug 16 to Aug 17
  11. #547 on Aug 18
  12. #534 on Aug 19
  13. #529 on Aug 20
  14. #532 on Aug 21
  15. #508 on Aug 22
  16. #529 on Aug 23
  17. #524 on Aug 24
  18. #528 on Aug 25
  19. #518 on Aug 26
  20. #523 on Aug 27
  21. #521 on Aug 28
  22. #505 on Aug 29
  23. #493 on Aug 30
  24. #514 on Aug 31
  25. #512 on Sep 1
  26. #504 from Sep 2 to Sep 3
  27. #492 on Sep 4
  28. #489 on Sep 5
  29. #496 from Sep 6 to Sep 7
  30. #508 on Sep 8
  31. #494 from Sep 9 to Sep 10
  32. #489 on Sep 11
  33. #484 on Sep 12
  34. #463 on Sep 13
  35. #471 on Sep 14
  36. #462 on Sep 15
  37. #468 on Sep 16
  38. #460 on Sep 17
  39. #468 on Sep 18
  40. #447 on Sep 19
  41. #458 on Sep 20
  42. #455 on Sep 21
  43. #461 on Sep 22
  44. #454 on Sep 23
  45. #445 on Sep 24
  46. #444 on Sep 25
  47. #439 on Sep 26
  48. #454 on Sep 27
  49. #459 on Sep 28
  50. #462 on Sep 29
  51. #455 on Sep 30
  52. #453 on Oct 1
  53. #448 on Oct 2
  54. #436 on Oct 3
  55. #431 on Oct 4
  56. #442 on Oct 5
  57. #448 on Oct 6
  58. #452 on Oct 7
  59. #457 on Oct 8
  60. #460 on Oct 9
  61. #454 on Oct 10
  62. #452 on Oct 11
  63. #462 on Oct 12
  64. #459 on Oct 13
  65. #457 on Oct 14
  66. #458 on Oct 15
  67. #462 on Oct 16
  68. #450 on Oct 17
  69. #458 on Oct 18
  70. #463 on Oct 19
  71. #464 on Oct 20
  72. #468 on Oct 21
  73. #461 on Oct 22
  74. #458 on Oct 23
  75. #448 on Oct 24
  76. #478 on Oct 25
  77. #474 from Oct 28 to Oct 29
  78. #473 on Oct 30

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 3, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 65 notes
  • assets/readme/demo.svg:8 Analysis incomplete: physical or joined line exceeds character limit
  • assets/readme/demo.svg:6 Analysis incomplete: physical or joined line exceeds character limit
  • assets/readme/demo.svg:7 Analysis incomplete: physical or joined line exceeds character limit
  • assets/readme/demo.svg:11 Analysis incomplete: physical or joined line exceeds character limit
  • assets/readme/demo.svg:18 Analysis incomplete: physical or joined line exceeds character limit
  • assets/readme/demo.svg:20 Analysis incomplete: physical or joined line exceeds character limit
  • assets/readme/demo.svg:22 Analysis incomplete: physical or joined line exceeds character limit
  • assets/readme/demo.svg:59 Analysis incomplete: physical or joined line exceeds character limit
  • assets/readme/demo.svg:60 Analysis incomplete: physical or joined line exceeds character limit
  • assets/readme/demo.svg:89 Analysis incomplete: physical or joined line exceeds character limit
  • assets/readme/demo.svg:107 Analysis incomplete: physical or joined line exceeds character limit
  • assets/readme/demo.svg:137 Analysis incomplete: physical or joined line exceeds character limit
  • assets/readme/demo.svg:138 Analysis incomplete: physical or joined line exceeds character limit
  • assets/readme/demo.svg:139 Analysis incomplete: physical or joined line exceeds character limit
  • assets/readme/demo.svg:182 Analysis incomplete: physical or joined line exceeds character limit
  • assets/readme/demo.svg:200 Analysis incomplete: physical or joined line exceeds character limit
  • assets/readme/demo.svg:221 Analysis incomplete: physical or joined line exceeds character limit
  • assets/readme/demo.svg:219 Analysis incomplete: physical or joined line exceeds character limit
  • assets/readme/demo.svg:220 Analysis incomplete: physical or joined line exceeds character limit
  • assets/readme/demo.svg:223 Analysis incomplete: physical or joined line exceeds character limit
Show all 192 signals by file

.claude-plugin/plugin.json

  • Network accessline 6
    "name": "MrGeDiao"   },   "homepage": "https://github.com/MrGeDiao/shuorenhua",
  • Network accessline 7
    },   "homepage": "https://github.com/MrGeDiao/shuorenhua",   "repository": "https://github.com/MrGeDiao/shuorenhua",
  • Network accessline 8
    "homepage": "https://github.com/MrGeDiao/shuorenhua",
  • Network accessline 9
    "repository": "https://github.com/MrGeDiao/shuorenhua",

CHANGELOG.md

  • Network accessline 13
    - 改写规则不变:三个运行文件与 2.5.0 逐字相同,已安装 2.5.0 的不用升级。插件版本号、安装页和 mini 末行同步到 2.5.1。 - README 常见问题补充已知缺口:较长的公开文章里,黑话和叠用比喻清理偏少([#16](https://github.com/MrGeDiao/shuorenhua/issues/16));在 2.5 里明确要求「彻底清理」时会多改,但会把部分说法换成猜测的意思而不标记,也会改动判断强度。同时说明 `minimal / sta
  • Network accessline 14
    - README 常见问题补充已知缺口:较长的公开文章里,黑话和叠用比喻清理偏少([#16](https://github.com/MrGeDiao/shuorenhua/issues/16));在 2.5 里明确要求「彻底清理」时会多改,但会把部分说法换成猜测的意思而不标记,也会改动判断强度。同时说明 `minimal / standard / aggressive` 三档在 2.5 里还没有分开的规则,并修正一处错字。
  • Network accessline 160
    对标 [KKKKhazix/human-writing](https://github.com/KKKKhazix/human-writing)(生成侧中文写作 skill)后做的一轮吸收。它管「写」、本仓库管「改」,两边的病灶清单只有部分重叠;本版补的是它覆盖到而本仓库零命中的篇章级病灶,以及一处被对比照出来的内部规则冲突。它的一刀切禁令(禁冒号、禁破折号)和单级严重度未采纳——那套只服务创作场景,套到 `docs` / `release-note` / `code-con
  • Network accessline 470
    针对 [#4](https://github.com/MrGeDiao/shuorenhua/issues/4) 复测反馈:v1.8.5 的 `in-place` 把长度接住了(实测 95–96%),但去 AI 味效果明显弱于 `structural`——长文里整句级的空话(无源引用、价值拔高收尾)在 `in-place` 下规则上删不掉,只会被软化保留。本版在 `structural` 和 `in-place` 之间补一个 `bounded` scope。
  • Network accessline 495
    针对 [#4](https://github.com/MrGeDiao/shuorenhua/issues/4) 反馈"长文被改完明显缩水"(约 1800 字 → minimal 约 1500 字 → aggressive 约 1000 字)。本版结论:问题不在三档力度,而在长文默认走 structural 动作时,删句、并句、重排段落会叠加。
  • Network accessline 721
    ### Added - 新增 `install/chatgpt-gpt-instructions.md`,提供 Custom GPT 的 Instructions 文本,用户自建 GPT 时直接复制 - `install/chatgpt.md` 新增 Custom GPT 方案(推荐)和 Projects 方案,解决 Custom Instructions 1,500 字符放不下 `SKILL.md` 的问题([#3](https://github.com/MrGeDiao/
  • Network accessline 723
    - `install/chatgpt.md` 新增 Custom GPT 方案(推荐)和 Projects 方案,解决 Custom Instructions 1,500 字符放不下 `SKILL.md` 的问题([#3](https://github.com/MrGeDiao/shuorenhua/issues/3))

README.md

  • Network accessline 5
    <p align="center">   <a href="https://github.com/MrGeDiao/shuorenhua/stargazers"><img src="https://img.shields.io/github/stars/MrGeDiao/shuorenhua?style=flat-square&amp;label=stars&amp;color=246BFD&amp;labelColor=101318" alt="GitHub stars">
  • Network accessline 6
    <a href="https://github.com/MrGeDiao/shuorenhua/stargazers"><img src="https://img.shields.io/github/stars/MrGeDiao/shuorenhua?style=flat-square&amp;label=stars&amp;color=246BFD&amp;labelColor=101318" alt="GitHub stars"></a>
  • Network accessline 7
    <a href="https://github.com/MrGeDiao/shuorenhua/releases"><img src="https://img.shields.io/github/v/release/MrGeDiao/shuorenhua?style=flat-square&amp;label=release&amp;color=246BFD&amp;labelColor=101318" alt="GitHub release"></a>
  • Network accessline 8
    <a href="LICENSE"><img src="https://img.shields.io/github/license/MrGeDiao/shuorenhua?style=flat-square&amp;color=246BFD&amp;labelColor=101318" alt="License"></a>
  • Network accessline 55
    **ChatGPT**:直接用[说人话 GPT](https://chatgpt.com/g/g-6a5829b1163481919e1e45851f6bc709-shuo-ren-hua),不用安装。
  • Network accessline 121
    - **默认改得保守。** 「为后续发展奠定了坚实的基础」这类评价算作者的判断,默认会留着;想去掉宣传腔要明确说「别吹」。不同模型差别也不小:另一段测试里,GPT 按规则留下了这类评价,Claude 整句删了。 - **长文改得偏少。** 较长的公开文章里,黑话和叠用的比喻清理不够。放宽规则后,它会把作者的话说轻或说重,还没找到稳妥的办法,讨论见 [#16](https://github.com/MrGeDiao/shuorenhua/issues/16)。
  • Network accessline 122
    - **长文改得偏少。** 较长的公开文章里,黑话和叠用的比喻清理不够。放宽规则后,它会把作者的话说轻或说重,还没找到稳妥的办法,讨论见 [#16](https://github.com/MrGeDiao/shuorenhua/issues/16)。
  • Network accessline 134
    - [stop-slop](https://github.com/hardikpandya/stop-slop):英文冗余表达规则
  • Network accessline 135
    - [humanizer](https://github.com/blader/humanizer):英文 AI 写作模式整理
  • Network accessline 136
    - [avoid-ai-writing](https://github.com/conorbronsdon/avoid-ai-writing):AI 写作问题分类
  • Network accessline 137
    - [speak-human-tw](https://github.com/Raymondhou0917/speak-human-tw):繁体中文编辑规则
  • Network accessline 141
    [![说人话 star 增长曲线](https://raw.githubusercontent.com/MrGeDiao/shuorenhua/star-data/star-growth.svg)](https://github.com/MrGeDiao/shuorenhua/stargazers)

assets/readme/demo.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 960 570" width="960" height="570" role="img" aria-label="改写对照:原文 130 字改成 56 字,删去招呼、重复和致谢,保留 24 次、7 次和周五前的条件。">

assets/readme/hero.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 960 400" width="960" height="400" role="img" aria-label="说人话:把 AI 腔改成能直接发出去的话。删掉套话,保留数字、条件和承诺。">

automation/check_repo.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Dangerous shell operationline 473
    exec(compile(source, str(path), "exec"), module.__dict__)

automation/eval/fetch_human_corpus.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 16
    PROJECTS = {     "wikinews": "https://zh.wikinews.org",
  • Network accessline 17
    "wikinews": "https://zh.wikinews.org",
  • Network accessline 18
    "wikisource": "https://zh.wikisource.org",
  • Network accessline 216
    def _get_json(base_url, params):     url = f"{base_url}/w/api.php?{urllib.parse.urlencode(params)}"     request = urllib.request.Request(
  • Network accessline 217
    url = f"{base_url}/w/api.php?{urllib.parse.urlencode(params)}"     request = urllib.request.Request(         url,
  • Network accessline 218
    request = urllib.request.Request(
  • Network accessline 220
    headers={"User-Agent": "shuorenhua-human-corpus/2.3.1 (fixed-revision extractor)"},     )     with urllib.request.urlopen(request, timeout=30) as response:
  • Network accessline 221
    )     with urllib.request.urlopen(request, timeout=30) as response:         return json.load(response)
  • Network accessline 222
    with urllib.request.urlopen(request, timeout=30) as response:

automation/eval/hard_metrics.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 994
    } HUMAN_CC_LICENSE_URLS = {     "CC0": "https://creativecommons.org/publicdomain/zero/1.0/",
  • Network accessline 995
    HUMAN_CC_LICENSE_URLS = {     "CC0": "https://creativecommons.org/publicdomain/zero/1.0/",     "CC0 1.0": "https://creativecommons.org/publicdomain/zero/1.0/",
  • Network accessline 996
    "CC0": "https://creativecommons.org/publicdomain/zero/1.0/",
  • Network accessline 997
    "CC0 1.0": "https://creativecommons.org/publicdomain/zero/1.0/",
  • Network accessline 998
    "CC BY 1.0": "https://creativecommons.org/licenses/by/1.0/",
  • Network accessline 999
    "CC BY 2.0": "https://creativecommons.org/licenses/by/2.0/",
  • Network accessline 1000
    "CC BY 2.5": "https://creativecommons.org/licenses/by/2.5/",
  • Network accessline 1001
    "CC BY 3.0": "https://creativecommons.org/licenses/by/3.0/",
  • Network accessline 1002
    "CC BY 4.0": "https://creativecommons.org/licenses/by/4.0/",
  • Network accessline 1003
    "CC BY-SA 1.0": "https://creativecommons.org/licenses/by-sa/1.0/",
  • Network accessline 1004
    "CC BY-SA 2.0": "https://creativecommons.org/licenses/by-sa/2.0/",
  • Network accessline 1005
    "CC BY-SA 2.5": "https://creativecommons.org/licenses/by-sa/2.5/",
  • Network accessline 1006
    "CC BY-SA 3.0": "https://creativecommons.org/licenses/by-sa/3.0/",
  • Network accessline 1007
    "CC BY-SA 4.0": "https://creativecommons.org/licenses/by-sa/4.0/",
  • Network accessline 1008
    "Public Domain": "https://creativecommons.org/publicdomain/mark/1.0/",

automation/eval/make_blind.py

  • Executable scriptline 1
    #!/usr/bin/env python3

automation/eval/protocol.py

  • Executable scriptline 1
    Executable file

automation/eval/runner.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 33
    [Credential-related source omitted]
  • Access to secretsline 87
    [Credential-related source omitted]

automation/eval/test_fetch_human_corpus.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 31
    == 消息来源 ==         * [https://example.org 模板表格噪声]
  • Network accessline 32
    * [https://example.org 模板表格噪声]

automation/eval/test_hard_metrics.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 90
    author_group="open-b",             source_type="open",             source_url="https://example.org/article",
  • Network accessline 91
    source_type="open",             source_url="https://example.org/article",             source_title="公开文章",
  • Network accessline 92
    source_url="https://example.org/article",
  • Network accessline 94
    source_author="示例作者",             license="CC BY 4.0",             license_url="https://creativecommons.org/licenses/by/4.0/",
  • Network accessline 95
    license="CC BY 4.0",             license_url="https://creativecommons.org/licenses/by/4.0/",             license_evidence_url="https://example.org/article#license",
  • Network accessline 96
    license_url="https://creativecommons.org/licenses/by/4.0/",
  • Network accessline 97
    license_evidence_url="https://example.org/article#license",
  • Network accessline 141
    source_author="示例作者",             license="CC BY 4.0",             license_url="https://creativecommons.org/licenses/by/4.0/",
  • Network accessline 142
    license="CC BY 4.0",             license_url="https://creativecommons.org/licenses/by/4.0/",             license_evidence_url="https://example.org/article#license",
  • Network accessline 143
    license_url="https://creativecommons.org/licenses/by/4.0/",
  • Network accessline 144
    license_evidence_url="https://example.org/article#license",
  • Network accessline 155
    self.body(),             source_type="open",             source_url="https://example.org/article",
  • Network accessline 156
    source_type="open",             source_url="https://example.org/article",             source_title="公开文章",
  • Network accessline 157
    source_url="https://example.org/article",
  • Network accessline 171
    self.body(),             source_type="open",             source_url="https://example.org/work?oldid=123",
  • Network accessline 172
    source_type="open",             source_url="https://example.org/work?oldid=123",             source_title="历史作品",
  • Network accessline 173
    source_url="https://example.org/work?oldid=123",
  • Network accessline 175
    source_author="示例作者",             license="Public Domain",             license_url="https://creativecommons.org/publicdomain/mark/1.0/",
  • Network accessline 176
    license="Public Domain",             license_url="https://creativecommons.org/publicdomain/mark/1.0/",             license_evidence_url="https://example.org/work?oldid=123",
  • Network accessline 177
    license_url="https://creativecommons.org/publicdomain/mark/1.0/",
  • Network accessline 178
    license_evidence_url="https://example.org/work?oldid=123",
  • Network accessline 190
    self.body(),             source_type="open",             source_url="https://example.org/article",
  • Network accessline 191
    source_type="open",             source_url="https://example.org/article",             source_title="公开文章",
  • Network accessline 192
    source_url="https://example.org/article",
  • Network accessline 194
    source_author="示例作者",             license="CC BY-SA 4.0",             license_url="https://creativecommons.org/licenses/by-sa/4.0/",
  • Network accessline 195
    license="CC BY-SA 4.0",             license_url="https://creativecommons.org/licenses/by-sa/4.0/",             consent_evidence="source page declares CC BY-SA 4.0",
  • Network accessline 196
    license_url="https://creativecommons.org/licenses/by-sa/4.0/",
  • Network accessline 205
    missing_ai_evidence.update(             {                 "license_evidence_url": "https://example.org/article#license",
  • Network accessline 206
    {                 "license_evidence_url": "https://example.org/article#license",                 "ai_evidence": "",
  • Network accessline 207
    "license_evidence_url": "https://example.org/article#license",
  • Network accessline 218
    {                 "ai_evidence": "written before generative AI; no model rewrite",                 "license_evidence_url": "https://creativecommons.org/licenses/by-sa/4.0/",
  • Network accessline 219
    "ai_evidence": "written before generative AI; no model rewrite",                 "license_evidence_url": "https://creativecommons.org/licenses/by-sa/4.0/",             }
  • Network accessline 220
    "license_evidence_url": "https://creativecommons.org/licenses/by-sa/4.0/",
  • Network accessline 232
    self.body(),             source_type="open",             source_url="https://example.org/article",
  • Network accessline 233
    source_type="open",             source_url="https://example.org/article",             source_title="公开文章",
  • Network accessline 234
    source_url="https://example.org/article",
  • Network accessline 246
    self.body(),             source_type="open",             source_url="https://example.org/article",
  • Network accessline 247
    source_type="open",             source_url="https://example.org/article",             source_title="公开文章",
  • Network accessline 248
    source_url="https://example.org/article",
  • Network accessline 250
    source_author="示例作者",             license="CC BY 4.0",             license_url="https://creativecommons.org/licenses/by/4.0/",
  • Network accessline 251
    license="CC BY 4.0",             license_url="https://creativecommons.org/licenses/by/4.0/",             license_evidence_url="https://example.org/article#license",
  • Network accessline 252
    license_url="https://creativecommons.org/licenses/by/4.0/",
  • Network accessline 253
    license_evidence_url="https://example.org/article#license",
  • Network accessline 269
    self.body(),             source_type="open",             source_url="https://example.org/article",
  • Network accessline 270
    source_type="open",             source_url="https://example.org/article",             source_title="公开文章",
  • Network accessline 271
    source_url="https://example.org/article",
  • Network accessline 273
    source_author="",             license="CC BY 4.0",             license_url="https://creativecommons.org/licenses/by/4.0/",
  • Network accessline 274
    license="CC BY 4.0",             license_url="https://creativecommons.org/licenses/by/4.0/",             license_evidence_url="https://example.org/article#license",
  • Network accessline 275
    license_url="https://creativecommons.org/licenses/by/4.0/",
  • Network accessline 276
    license_evidence_url="https://example.org/article#license",
  • Network accessline 282
    wrong_license_url = dict(missing_author)         wrong_license_url.update({"source_author": "示例作者", "license_url": "https://example.org/license"})
  • Network accessline 283
    wrong_license_url.update({"source_author": "示例作者", "license_url": "https://example.org/license"})
  • Network accessline 287
    missing_change_notice = dict(wrong_license_url)         missing_change_notice.update({             "license_url": "https://creativecommons.org/licenses/by/4.0/",
  • Network accessline 288
    missing_change_notice.update({             "license_url": "https://creativecommons.org/licenses/by/4.0/",             "modifications": "",
  • Network accessline 289
    "license_url": "https://creativecommons.org/licenses/by/4.0/",
  • Network accessline 373
    "origin_language": "translated-from-en" if i <= 2 else "zh-original",                 "source_type": "open",                 "source_url": f"https://example.org/article-{i}",
  • Network accessline 374
    "source_type": "open",                 "source_url": f"https://example.org/article-{i}",                 "source_title": f"公开文章 {i}",
  • Network accessline 375
    "source_url": f"https://example.org/article-{i}",
  • Network accessline 377
    "source_author": f"示例作者 {i}",                 "license": "CC BY-SA 4.0",                 "license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
  • Network accessline 378
    "license": "CC BY-SA 4.0",                 "license_url": "https://creativecommons.org/licenses/by-sa/4.0/",                 "license_evidence_url": f"https://example.org/article-{i}#license",
  • Network accessline 379
    "license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
  • Network accessline 380
    "license_evidence_url": f"https://example.org/article-{i}#license",
  • Network accessline 393
    self.body(),             source_type="open",             source_url="https://zh.wikinews.org/w/index.php?title=Example&oldid=123",
  • Network accessline 394
    source_type="open",             source_url="https://zh.wikinews.org/w/index.php?title=Example&oldid=123",             source_revision="124",
  • Network accessline 395
    source_url="https://zh.wikinews.org/w/index.php?title=Example&oldid=123",
  • Network accessline 398
    source_author="示例作者",             license="CC BY 2.5",             license_url="https://creativecommons.org/licenses/by/2.5/",
  • Network accessline 399
    license="CC BY 2.5",             license_url="https://creativecommons.org/licenses/by/2.5/",             license_evidence_url="https://zh.wikinews.org/w/index.php?title=Wikinews%3A%E7%89%88%E6%9D%83%E4%BF%A1%E6%81%AF&oldid=262628",
  • Network accessline 400
    license_url="https://creativecommons.org/licenses/by/2.5/",
  • Network accessline 401
    license_evidence_url="https://zh.wikinews.org/w/index.php?title=Wikinews%3A%E7%89%88%E6%9D%83%E4%BF%A1%E6%81%AF&oldid=262628",
  • Network accessline 417
    item["fixed_revision_at"] = "2021-01-01"         item["license_evidence_url"] = "https://zh.wikinews.org/w/index.php?title=Example&oldid=262628"
  • Network accessline 418
    item["license_evidence_url"] = "https://zh.wikinews.org/w/index.php?title=Example&oldid=262628"
  • Network accessline 422
    item["license_evidence_url"] = "https://zh.wikinews.org/w/index.php?title=Wikinews%3A%E7%89%88%E6%9D%83%E4%BF%A1%E6%81%AF&oldid=262628"
  • Network accessline 423
    item["source_revision"] = "abc"         item["source_url"] = "https://zh.wikinews.org/w/index.php?title=Example&oldid=abc"         with self.assertRaisesRegex(hard_metrics.HumanCorpusError, "source_revision 必须是正整数"):
  • Network accessline 424
    item["source_url"] = "https://zh.wikinews.org/w/index.php?title=Example&oldid=abc"
  • Network accessline 552
    "era": "historical" if i <= 3 else "modern",                     "origin_language": "translated-from-en" if i <= 2 else "zh-original",                     "source_url": f"https://example.org/article-{i}",
  • Network accessline 553
    "origin_language": "translated-from-en" if i <= 2 else "zh-original",                     "source_url": f"https://example.org/article-{i}",                     "source_title": f"公开文章 {i}",
  • Network accessline 554
    "source_url": f"https://example.org/article-{i}",
  • Network accessline 556
    "source_author": f"示例作者 {i}",                     "license": "CC BY 4.0",                     "license_url": "https://creativecommons.org/licenses/by/4.0/",
  • Network accessline 557
    "license": "CC BY 4.0",                     "license_url": "https://creativecommons.org/licenses/by/4.0/",                     "license_evidence_url": f"https://example.org/article-{i}#license",
  • Network accessline 558
    "license_url": "https://creativecommons.org/licenses/by/4.0/",
  • Network accessline 559
    "license_evidence_url": f"https://example.org/article-{i}#license",
  • Network accessline 568
    "era": "historical" if i <= 3 else "modern",                     "origin_language": "translated-from-en" if i <= 2 else "zh-original",                     "source_url": f"https://example.org/article-{i}",
  • Network accessline 569
    "origin_language": "translated-from-en" if i <= 2 else "zh-original",                     "source_url": f"https://example.org/article-{i}",                     "source_title": f"公开文章 {i}",
  • Network accessline 570
    "source_url": f"https://example.org/article-{i}",
  • Network accessline 572
    "source_author": f"示例作者 {i}",                     "license": "CC BY 4.0",                     "license_url": "https://creativecommons.org/licenses/by/4.0/",
  • Network accessline 573
    "license": "CC BY 4.0",                     "license_url": "https://creativecommons.org/licenses/by/4.0/",                     "license_evidence_url": f"https://example.org/article-{i}#license",
  • Network accessline 574
    "license_url": "https://creativecommons.org/licenses/by/4.0/",
  • Network accessline 575
    "license_evidence_url": f"https://example.org/article-{i}#license",

automation/eval/test_protocol.py

  • Executable scriptline 1
    Executable file

automation/eval/test_runner.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 382
    [Credential-related source omitted]
  • Access to secretsline 403
    [Credential-related source omitted]
  • Access to secretsline 407
    [Credential-related source omitted]
  • Access to secretsline 429
    [Credential-related source omitted]
  • Access to secretsline 448
    [Credential-related source omitted]

automation/gen_star_history.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 104
    svg = f'''<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="390" viewBox="0 0 1200 390" role="img" aria-label="说人话 star 增长曲线:开源 {span} 天,0 到 {total} stars,数据截至 {today}">

automation/test_check_repo.py

  • Executable scriptline 1
    Executable file
  • Network accessline 60
    def test_empty_and_nonlocal_targets_are_ignored(self):         for target in ("", " \t", "<>", "#part", "?query", "//example.com/a",                        "https://example.com", "MAILTO:a@example.com", "git+ssh:x",
  • Network accessline 61
    for target in ("", " \t", "<>", "#part", "?query", "//example.com/a",                        "https://example.com", "MAILTO:a@example.com", "git+ssh:x",                        "custom.scheme-1:value", "C:/file.md", "&#35;part"):
  • Network accessline 62
    "https://example.com", "MAILTO:a@example.com", "git+ssh:x",

automation/test_check_runtime.py

  • Executable scriptline 1
    Executable file
  • Network accessline 16
    (self.root / "references").mkdir()         (self.root / "SKILL.md").write_text("# Skill\n[说明](references/guide.md)\n")         (self.root / "references/guide.md").write_text("[返回](../SKILL.md)\n[官网](https://example.com/x)\n")
  • Network accessline 17
    (self.root / "SKILL.md").write_text("# Skill\n[说明](references/guide.md)\n")         (self.root / "references/guide.md").write_text("[返回](../SKILL.md)\n[官网](https://example.com/x)\n")         self.files = ["SKILL.md", "references/guide.md"]
  • Network accessline 18
    (self.root / "references/guide.md").write_text("[返回](../SKILL.md)\n[官网](https://example.com/x)\n")
  • Network accessline 95
    check_repo.check_counts(issues)                 self.assertEqual(issues, [])                 (root / "README.md").write_text('![Benchmark](https://img.shields.io/badge/benchmark-99%20cases-blue)')
  • Network accessline 96
    self.assertEqual(issues, [])                 (root / "README.md").write_text('![Benchmark](https://img.shields.io/badge/benchmark-99%20cases-blue)')                 check_repo.check_counts(issues)
  • Network accessline 97
    (root / "README.md").write_text('![Benchmark](https://img.shields.io/badge/benchmark-99%20cases-blue)')

evals/human-corpus.jsonl

  • Network accessline 1
    {"id":"HUMAN-01","path":"evals/human-corpus/HUMAN-01.txt","scene":"status","genre":"public-year-in-review","era":"modern","origin_language":"zh-original","author_group":"wikinews-taiwan-review","source_type":"open","source_url":"https://zh.
  • Network accessline 2
    {"id":"HUMAN-02","path":"evals/human-corpus/HUMAN-02.txt","scene":"status","genre":"public-year-in-review","era":"modern","origin_language":"zh-original","author_group":"wikinews-hongkong-review","source_type":"open","source_url":"https://z
  • Network accessline 3
    {"id":"HUMAN-03","path":"evals/human-corpus/HUMAN-03.txt","scene":"status","genre":"public-reporting-review","era":"modern","origin_language":"zh-original","author_group":"wikinews-original-reporters","source_type":"open","source_url":"http
  • Network accessline 4
    {"id":"HUMAN-04","path":"evals/human-corpus/HUMAN-04.txt","scene":"public-writing","genre":"published-interview","era":"modern","origin_language":"translated-from-en","author_group":"william-saturn-kit-wong","source_type":"open","source_url
  • Network accessline 5
    {"id":"HUMAN-05","path":"evals/human-corpus/HUMAN-05.txt","scene":"public-writing","genre":"published-interview","era":"modern","origin_language":"translated-from-en","author_group":"william-saturn-kit-wong","source_type":"open","source_url
  • Network accessline 6
    {"id":"HUMAN-06","path":"evals/human-corpus/HUMAN-06.txt","scene":"docs","genre":"formal-petition","era":"historical","origin_language":"zh-original","author_group":"sun-yat-sen","source_type":"open","source_url":"https://zh.wikisource.org/
  • Network accessline 7
    {"id":"HUMAN-07","path":"evals/human-corpus/HUMAN-07.txt","scene":"docs","genre":"proposal-essay","era":"historical","origin_language":"zh-original","author_group":"hu-shih","source_type":"open","source_url":"https://zh.wikisource.org/w/ind
  • Network accessline 8
    {"id":"HUMAN-08","path":"evals/human-corpus/HUMAN-08.txt","scene":"docs","genre":"social-analysis-essay","era":"historical","origin_language":"zh-original","author_group":"lu-xun","source_type":"open","source_url":"https://zh.wikisource.org
  • Network accessline 9
    {"id":"HUMAN-09","path":"evals/human-corpus/HUMAN-09.txt","scene":"docs","genre":"technical-writing-guide","era":"modern","origin_language":"zh-original","author_group":"ruanyf-document-style-guide","source_type":"open","source_url":"https:
  • Network accessline 10
    {"id":"HUMAN-10","path":"evals/human-corpus/HUMAN-10.txt","scene":"status","genre":"official-project-progress-report","era":"modern","origin_language":"zh-original","author_group":"plct-weekly-contributors","source_type":"open","source_url"

evals/human-corpus/README.md

  • Network accessline 20
    {"id":"HUMAN-01","path":"evals/human-corpus/HUMAN-01.txt","scene":"status","genre":"public-year-in-review","era":"modern","origin_language":"zh-original","representation_role":"proxy","author_group":"author-a","source_type":"open","source_u

evals/real-samples.md

  • Network accessline 61
    - [LINUX DO:我就在这里!不躲!不藏!不逃!不绕,稳稳地接住你](https://linux.do/t/topic/1563454)
  • Network accessline 62
    - [LINUX DO:我就在这里,稳稳地接住你](https://linux.do/t/topic/1568563)
  • Network accessline 63
    - [LINUX DO:受不了gpt5.4了,“我不瞎猜,如果你愿意”](https://linux.do/t/topic/1916263/73)
  • Network accessline 64
    - [LINUX DO:对于 role play 来说,如何压制 GPT-5 味道?](https://linux.do/t/topic/1658788)
  • Network accessline 65
    - [V2EX:用 GPT 5.4 写代码 它的回复话术和代码 感觉还蛮专业的](https://s.v2ex.com/t/1196468)
  • Network accessline 66
    - [V2EX:gpt 为什么这么喜欢画图](https://www.v2ex.com/t/1151932)

evals/results-v2.6.0.md

  • Network accessline 59
    - 写平实小测每篇只跑一次,样本是 3 篇宣传文本和 1 篇新闻,属于可行性测试,不是大范围验收。 - 这个模式只处理夸饰,不处理黑话。较长文章里黑话清理偏少,仍是已知缺口,见 [#16](https://github.com/MrGeDiao/shuorenhua/issues/16)。
  • Network accessline 60
    - 这个模式只处理夸饰,不处理黑话。较长文章里黑话清理偏少,仍是已知缺口,见 [#16](https://github.com/MrGeDiao/shuorenhua/issues/16)。

install/chatgpt.md

  • Network accessline 15
    可以使用现有的[说人话 GPT](https://chatgpt.com/g/g-6a5829b1163481919e1e45851f6bc709-shuo-ren-hua)。它的线上版本与仓库版本分开维护。
  • Network accessline 19
    1. 打开 [GPT Editor](https://chatgpt.com/gpts/editor),新建 GPT。

install/claude-code.md

  • Network accessline 16
    这种根目录单 SKILL 插件布局要求 Claude Code v2.1.142 或以上,见[官方插件说明](https://code.claude.com/docs/en/plugins-reference)。本地候选已在 Claude Code 2.1.268 上用隔离的 `CLAUDE_CONFIG_DIR` 完成 `marketplace add` → `plugin install` → `plugin details` → `plugin uninstall` 验

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Declared and executed: 4 facts
Signal confidence: 176 facts

and 126 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativeManifest .claude-plugin/marketplace.json.claude/skills/<skill-name>/
CodexNativeManifest AGENTS.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.

Explore alternatives and comparisons

Add this badge to your README

It updates every night and links to this page.

MrGeDiao/shuorenhua: #469 on hotskills, 2.5k stars

[![MrGeDiao/shuorenhua on hotskills](https://hotskills.dev/badge/mrgediao-shuorenhua.svg)](https://hotskills.dev/skill/mrgediao-shuorenhua/)