RepoTrust

MrGeDiao/shuorenhua

说人话|中文优先的去 AI 味改写 skill:保事实、分场景、改完可直接发。Chinese-first rewrite skill for Codex / Claude Code / Cursor / ChatGPT — removes AI tone, preserves facts.

https://github.com/MrGeDiao/shuorenhua · commit 39809cea2d8c · scored 2026-11-14 · scoring prov-4+qual-2+sec-2

RepoTrust ai badge RepoTrust quality badge RepoTrust security badge

Dispute this score or request a re-score Full report JSON

Scores

Pillar Score Signal Confidence Coverage
AI provenance (estimated AI-generated share) 0 explicit 95% 100%
Code quality 72 adequate 90% 100%
Security 70 weak 85% 100%

AI provenance

Explicit AI attribution on 0% of first-party code added; an estimated 0% including velocity signals.

AI tool Attributed commits Lines added
Claude Code 2 0
OpenAI Codex 1 0

Current source lines last changed by AI-attributed commits: 0 of 3,650.

Too few lines in one group to compare finding densities.

Month Lines added Attributed to AI
2026-07 558 0%
2026-08 3,161 0%
2026-09 1,522 0%
2026-10 12 0%
2026-11 359 0%

Evidence

AI provenance describes how code was produced; it is not a quality judgment. Unless attribution is explicit, these are signals consistent with AI generation, not proof. Squash/rebase workflows, imported code, and rewritten history reduce accuracy.

Code quality

Code quality is adequate: test-to-source ratio 0.49, CI runs tests; 50% of function code in complex or long functions; 2% duplicated lines. Weakest area: complexity.

Area Score
Complexity (lizard) 22
Duplication 90
Code smells (Opengrep) 81
Tests and CI 89
Documentation 100
Type safety 40
Process (Scorecard review/maintenance) n/a

Most complex functions:

Security

Security posture is weak: 2 high-severity SAST findings; 3 high-severity workflow issues. Weakest area: posture.

Area Score
Secrets (gitleaks, tree + history) 100
Static analysis (Opengrep) 82
Vulnerable dependencies (OSV) n/a
CI workflows (zizmor) 50
Posture (policy, updates, signing, lockfiles) 0
OpenSSF Scorecard n/a

Top findings

Severity Finding Location
high opengrep/python.lang.security.audit.dangerous-subprocess-use-audit: Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low] automation/check_repo.py:56
high opengrep/python.lang.security.audit.dangerous-subprocess-use-audit: Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low] automation/eval/runner.py:463
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/check.yml:10
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/star-history.yml:15
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/star-history.yml:16
medium opengrep/python.lang.security.audit.exec-detected: Detected the use of exec(). exec() can be dangerous if used to evaluate dynamic content. If this content can be input from outside the program, this may be a code injection vulnerability. Ensure evaluated content is not definable by external sources. [confidence low] automation/check_repo.py:479
medium opengrep/python.lang.security.audit.dynamic-urllib-use-detected: Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead. [confidence low] automation/eval/fetch_human_corpus.py:222
medium zizmor/artipacked: credential persistence through GitHub Actions artifacts [confidence low] .github/workflows/check.yml:10
medium zizmor/excessive-permissions: overly broad permissions [confidence medium] .github/workflows/check.yml:7
medium zizmor/artipacked: credential persistence through GitHub Actions artifacts [confidence low] .github/workflows/star-history.yml:15
medium zizmor/artipacked: credential persistence through GitHub Actions artifacts [confidence low] .github/workflows/star-history.yml:16

Static signals only: the scorer never runs the project's code. Secret findings are pattern matches that were not verified, and secret values are never stored.

Distribution signals

Signals consistent with a repository that exists to distribute a download. They are heuristics, not a verdict; release files were not downloaded or inspected.

Repository profile

Language Lines
Python 5,433

Embed a badge

Maintainers can show these in a README. Badges update when the repository is re-scored.

[![RepoTrust ai](https://repotrust.synapticcyber.com/badge/github.com/MrGeDiao/shuorenhua/ai.svg)](https://repotrust.synapticcyber.com/r/github.com/MrGeDiao/shuorenhua/)
[![RepoTrust quality](https://repotrust.synapticcyber.com/badge/github.com/MrGeDiao/shuorenhua/quality.svg)](https://repotrust.synapticcyber.com/r/github.com/MrGeDiao/shuorenhua/)
[![RepoTrust security](https://repotrust.synapticcyber.com/badge/github.com/MrGeDiao/shuorenhua/security.svg)](https://repotrust.synapticcyber.com/r/github.com/MrGeDiao/shuorenhua/)