Code Reviewer
alirezarezvani/claude-skills
Code review automation for TypeScript, JavaScript, Python, Go, Swift, Kotlin, C, .NET, Java, C, C++, Rust, Ruby, PHP, and Dart/Flutter.
A skill your agent uses for Zhihu++ maintenance work that scans Kotlin main sources for low-call functions, structurally similar function bodies, dead code, pure forwarding wrappers, pointless…
$ npx skills add zly2006/zhihu-plus-plus --skill zhihu-pp-ai-slop-cleaner -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install zly2006/zhihu-plus-plus zhihu-pp-ai-slop-cleaner --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/zly2006/zhihu-plus-plus.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/zhihu-pp-ai-slop-cleaner .claude/skills/zhihu-pp-ai-slop-cleaner && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "zhihu-pp-ai-slop-cleaner" agent skill from https://github.com/zly2006/zhihu-plus-plus/tree/master/.agents/skills/zhihu-pp-ai-slop-cleaner into .claude/skills/zhihu-pp-ai-slop-cleaner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "zhihu-pp-ai-slop-cleaner", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/zly2006/zhihu-plus-plus/tree/master/.agents/skills/zhihu-pp-ai-slop-cleanerType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add zly2006/zhihu-plus-plus --skill zhihu-pp-ai-slop-cleaner -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install zly2006/zhihu-plus-plus zhihu-pp-ai-slop-cleaner --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/zly2006/zhihu-plus-plus.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/zhihu-pp-ai-slop-cleaner .agents/skills/zhihu-pp-ai-slop-cleaner && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "zhihu-pp-ai-slop-cleaner" agent skill from https://github.com/zly2006/zhihu-plus-plus/tree/master/.agents/skills/zhihu-pp-ai-slop-cleaner into .agents/skills/zhihu-pp-ai-slop-cleaner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "zhihu-pp-ai-slop-cleaner", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add zly2006/zhihu-plus-plus --skill zhihu-pp-ai-slop-cleaner -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install zly2006/zhihu-plus-plus zhihu-pp-ai-slop-cleaner --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/zly2006/zhihu-plus-plus.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/zhihu-pp-ai-slop-cleaner .cursor/skills/zhihu-pp-ai-slop-cleaner && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "zhihu-pp-ai-slop-cleaner" agent skill from https://github.com/zly2006/zhihu-plus-plus/tree/master/.agents/skills/zhihu-pp-ai-slop-cleaner into .cursor/skills/zhihu-pp-ai-slop-cleaner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "zhihu-pp-ai-slop-cleaner", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/zly2006/zhihu-plus-plus.git --path .agents/skills/zhihu-pp-ai-slop-cleaner--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add zly2006/zhihu-plus-plus --skill zhihu-pp-ai-slop-cleaner -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install zly2006/zhihu-plus-plus zhihu-pp-ai-slop-cleaner --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/zly2006/zhihu-plus-plus.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/zhihu-pp-ai-slop-cleaner .gemini/skills/zhihu-pp-ai-slop-cleaner && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "zhihu-pp-ai-slop-cleaner" agent skill from https://github.com/zly2006/zhihu-plus-plus/tree/master/.agents/skills/zhihu-pp-ai-slop-cleaner into .gemini/skills/zhihu-pp-ai-slop-cleaner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "zhihu-pp-ai-slop-cleaner", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install zly2006/zhihu-plus-plus zhihu-pp-ai-slop-cleanerInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add zly2006/zhihu-plus-plus --skill zhihu-pp-ai-slop-cleaner -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/zly2006/zhihu-plus-plus.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/zhihu-pp-ai-slop-cleaner .github/skills/zhihu-pp-ai-slop-cleaner && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "zhihu-pp-ai-slop-cleaner" agent skill from https://github.com/zly2006/zhihu-plus-plus/tree/master/.agents/skills/zhihu-pp-ai-slop-cleaner into .github/skills/zhihu-pp-ai-slop-cleaner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "zhihu-pp-ai-slop-cleaner", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add zly2006/zhihu-plus-plus --skill zhihu-pp-ai-slop-cleaner -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install zly2006/zhihu-plus-plus zhihu-pp-ai-slop-cleaner --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/zly2006/zhihu-plus-plus.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/zhihu-pp-ai-slop-cleaner .opencode/skills/zhihu-pp-ai-slop-cleaner && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "zhihu-pp-ai-slop-cleaner" agent skill from https://github.com/zly2006/zhihu-plus-plus/tree/master/.agents/skills/zhihu-pp-ai-slop-cleaner into .opencode/skills/zhihu-pp-ai-slop-cleaner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "zhihu-pp-ai-slop-cleaner", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
zhihu-pp-ai-slop-cleanerA skill your agent uses for Zhihu++ maintenance work that scans Kotlin main sources for low-call functions, structurally similar function bodies, dead code, pure forwarding wrappers, pointless…
Zhihu Pp AI Slop Cleaner is an agent skill from zly2006/zhihu-plus-plus. Use for Zhihu++ maintenance work that scans Kotlin main sources for low-call functions, structurally similar function bodies, dead code, pure forwarding wrappers, pointless abstractions, repeated helpers, and cross-platform duplicate glue before refactoring or PR cleanup. Trigger when the user asks to clean AI slop, remove low-call wrappers, find similar or duplicated code, review duplicated helper functions, or audit functions with call count at most 2 in /Users/zhaoliyan/IdeaProjects/Zhihu.
Its SKILL.md is about 3.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including scripts (for example `agents/openai.yaml`, `scripts/find_similar_kotlin_functions.py` and `scripts/scan_low_call_functions.py`).
It sits in Development, covering Android development and Refactoring. It works with Kotlin. The repository describes itself as: Zhihu++ | 知乎++: Ad-free, low cost, AI powered zhihu android 3rd-party client. 去广告、占用低、AI大模型的新时代知乎安卓端体验. The licence is AGPL-3.0.
11 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit eb9d9a7. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 2 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
python3gitrgFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Zhihu Pp AI Slop Cleaner loads about 3.7k tokens when it runs. Until then it costs about 131 tokens; SKILL.md has 1,840 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from zly2006/zhihu-plus-plus at commit eb9d9a7, republished under its AGPL-3.0 licence (© zly2006). 1,840 words, ~3,681 tokens.
.claude/skills/zhihu-pp-ai-slop-cleaner/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Treat low call count as a queue for review, not proof of deletion.
Use non-test production line count as a hard refactor check, measured per independent change cluster rather than only across the whole commit. Deleting one large client must not hide line growth caused by new owners, adapters, constructor parameters, or initialization glue elsewhere. A cleanup that preserves behavior but materially grows the production implementation is presumed wrong unless the added lines encode a demonstrated new contract.
Do not treat unit-test reachability as a production contract. Before merging or preserving tests for a pure
function, inspect whether the test caused production code to expose an internal helper, accept extra parameters,
or retain test-only branches and fallback values. When the behavior is simple and already exercised through its
real caller, delete the direct helper test, inline or make the helper private, and remove parameters or special
cases that no production path needs. Optimize the production API first, then keep only tests for observable
contracts and regression-prone boundaries; reducing test-method count while leaving test-shaped production code is
not a successful cleanup.
Do not create a State object merely because several local values belong to the same screen, feature, or naming family, or because their count crosses a mechanical threshold. A state object is justified only when its members participate in the same invariant, transition, or lifecycle; independent dialog flags, display modes, loading flags, and navigation flags must remain independent even when there are many of them. Count-based review rules identify places to inspect, not fields to bundle. Example: a reading mode flag and a next-item loading flag may both appear on a content page, but changing one does not constrain the other, so grouping them only hides unrelated state behind a vague container.
Delete or inline a function only after inspecting its declaration, every real call site, and the surrounding contract. Keep small functions that are framework entry points, stable UI/test selectors, platform contracts, interface defaults, Room/serialization hooks, navigation hooks, or meaningful domain boundaries.
Runtime / UI State dependency bundles are migration debt, not contracts. Search for *Runtime, *State, remember*Runtime, and similar dependency-bundle names as a first-class cleanup target instead of waiting for low-call evidence. When a screen or shared UI exposes one of these objects and it aggregates ViewModels, settings snapshots, environment methods, callbacks, network/database access, or platform helpers, dismantle it unconditionally. Move each responsibility to the real owner: common UI selects common ViewModels directly, common code calls cross-platform network/database helpers directly, and platform-only effects use narrow expect/actual functions or existing composition locals. Do not preserve a runtime field just because it currently carries login, update, install metadata, debug flags, or another “platform service”; split that service into the smallest real platform primitive or inline it at the caller.
When a runtime/capability object or composition local already owns a cross-platform helper, do not also thread that same capability through sibling parameters. Treat runtime + duplicate capability parameter or composition local + forwarded parameter as a half-cleaned dependency bundle: remove the duplicate parameter and read the capability at the lowest composable/helper that actually uses it, or from the runtime if the runtime remains temporarily. Example: an item renderer should not receive image save/share functions merely to pass them into an image menu when those functions are already cross-platform composition helpers available to that menu.
When merging duplicated platform implementations, do not stop at moving the duplicated body into an environment/interface default if there is still only one real semantic caller. If a ViewModel is the only place that owns the workflow, put the request logic in that ViewModel and let the environment expose only lower-level capabilities such as authenticated cookies and signed requests. Example: a question follow action should live in the question feed ViewModel that catches its errors, not as a one-call environment.follow...() wrapper that only chooses POST or DELETE.
Before adding a cross-platform file-storage interface, inspect and use the Kotlin multiplatform filesystem API already available to the project. Platform code may supply the application-private root path when the operating system determines it, but it must not wrap ordinary read, write, exists, or delete operations behind environment methods that merely forward to the common file object. Example: a feature cache should receive or derive a common Path under the app-private directory and perform JSON file I/O in common code, instead of adding four readPrivateTextFile and writePrivateTextFile methods to an environment and duplicating those operations in every actual implementation.
Do not push platform or storage dependencies upward just because the current accessor is only convenient from UI code. If a lower-level navigation or filtering component owns the query, make the cross-platform dependency available at that level instead of threading a database or platform handle through screen and ViewModel calls. Example: answer switching should ask its own support layer for already-opened content, not force the article loading call to accept a database parameter that exists only to be forwarded.
Do not delete runtime guards just to make tests pass or to simplify state. If a throttle, retry limiter, debounce, permission gate, or cache invalidation guard protects production behavior, keep it and make tests reset or inject the relevant state explicitly. Example: an authenticated request refresh throttle should be reset in tests; removing the throttle changes runtime semantics.
Default to whole-file or helper-family cleanup batches. Do not wait for the user to ask for a “second stage” before leaving tiny one-helper edits behind. If the current checkout is not already a dedicated cleanup branch or worktree, put broad cleanup in its own worktree so the main checkout remains available, then process whole-file helper clusters at once. A valid broad batch should remove or inline at least one complete file's helper cluster and cover at least 30 helper functions unless the user explicitly narrows the scope. If one suspicious helper is found, inspect its surrounding file-level cluster and remove adjacent useless wrappers together instead of deleting one isolated function per commit.
git status --short --branch.python3 .agents/skills/zhihu-pp-ai-slop-cleaner/scripts/scan_low_call_functions.py \
--root . \
--max-calls 2 \
--output /tmp/zhihu_low_functions.tsvpython3 .agents/skills/zhihu-pp-ai-slop-cleaner/scripts/find_similar_kotlin_functions.py \
--root . \
--threshold 0.82 \
--output /tmp/zhihu_similar_functions.tsvrg before editing:rg -n "\bFUNCTION_NAME\b" app shared desktopApp -g '*.kt'Classify each candidate:
delete: no production caller and no framework/test entry value.inline: function body is a pure forwarding call, local one-use wrapper, or renaming shell.merge: repeated helpers perform the same operation; replace with one shared helper or add a parameter.keep: function is a real contract, domain boundary, parser step, platform actual, override, DAO method, serializer, stable test tag, or improves readability of a complex expression.keep; delete or inline the whole bundle and all of its actual/expect shells.For every candidate, switch to a file-level pass before editing. Read the nearby functions and classify the whole helper cluster together instead of deleting one rg hit at a time. Example: if one signed request helper in an environment file looks unnecessary, inspect adjacent signed helpers in the same file; keep multi-call primitives, but inline a single-call wrapper that only forwards to the lower-level client and adds no contract.
Edit only after classification. Prefer the nearest existing API over creating a new helper.
Re-run the relevant scan after each batch and check that deleted or merged names disappeared.
Run project verification in the required order before committing:
./gradlew assembleLiteDebug
./gradlew ktlintFormatgit diff --check
git diff --stat
rg -n "TODO|unused|deprecated wrapper|pure forwarding" app shared desktopApp -g '*.kt'*Runtime, *State, remember*Runtime, and UI dependency-bundle fields, even when they still have multiple call sites. Treat each field as a forwarding layer to eliminate, not as a surface to preserve.During slop cleanup, do not reintroduce platform/environment state just because master has a newer conflict-side implementation. If the cleanup intentionally pushed a cache/throttle into a lower-level helper to keep API surface small, preserve that direction when resolving conflicts. Example: when a lower-level authenticated request helper owns a short refresh throttle, do not add per-platform last... getters/setters back onto the environment interface merely to satisfy one merge side; keep the throttle at the lower layer and adapt the conflicting code around it.
After a user points out one bad conflict direction, audit the whole merge intersection before continuing. Check every file changed on both sides, search for deleted helper families that may have been reintroduced under the same or similar names, and verify new master-side behavior is still present. Example: if a conflict around an environment interface accidentally brings back one state accessor, also inspect adjacent files for old repositories, URL helpers, wrapper methods, and newly added feature interfaces instead of fixing only the named accessor.
override, expect, actual, @Serializable serializer methods, NavType, Room DAO, Room converter, migration, lifecycle callback, and JavaScript bridge entry points unless source inspection proves they are unused and removable.scripts/scan_low_call_functions.py is intentionally conservative:
test, androidTest, build output, and worktrees unless options change that.expect/actual declarations by name and arity so the multiplatform declaration family is counted once.Useful options:
python3 .agents/skills/zhihu-pp-ai-slop-cleaner/scripts/scan_low_call_functions.py --help
python3 .agents/skills/zhihu-pp-ai-slop-cleaner/scripts/scan_low_call_functions.py --include-tests
python3 .agents/skills/zhihu-pp-ai-slop-cleaner/scripts/scan_low_call_functions.py --max-calls 0scripts/find_similar_kotlin_functions.py finds similar bodies by normalized token shingles:
ID, numbers to NUM, and string/char literals to STR/CHAR.Useful options:
python3 .agents/skills/zhihu-pp-ai-slop-cleaner/scripts/find_similar_kotlin_functions.py --help
python3 .agents/skills/zhihu-pp-ai-slop-cleaner/scripts/find_similar_kotlin_functions.py --threshold 0.9
python3 .agents/skills/zhihu-pp-ai-slop-cleaner/scripts/find_similar_kotlin_functions.py --min-lines 8 --min-tokens 60When the cleanup becomes a PR:
git add .; stage explicit paths.refactor: unless the user asks otherwise.© zly2006, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (scripts) in .agents/skills/zhihu-pp-ai-slop-cleaner of zly2006/zhihu-plus-plus.
Open the folder on GitHubat commit eb9d9a7
Zhihu Pp AI Slop Cleaner next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Zhihu Pp AI Slop Cleaner this skillzly2006/zhihu-plus-plus | 4.2k | — | ~3.7k | Automated safety check: Pass | AGPL-3.0 | |
| Code Revieweralirezarezvani/claude-skills | 28k | 1 repos | ~1.6k | Automated safety check: Pass | MIT | |
| Code Reviewerborghei/Claude-Skills | 891 | — | ~1.7k | Automated safety check: Pass | MIT | |
| Architecture Overclocknekomangaorg/Neko | 2.8k | — | ~1.4k | Automated safety check: Pass | Apache-2.0 | |
| Architecture Renovatornekomangaorg/Neko | 2.8k | — | ~1.2k | Automated safety check: Pass | Apache-2.0 | |
| Task Workflowikarenkov/Modo | 343 | — | ~2.4k | Automated safety check: Pass | None |
alirezarezvani/claude-skills
Code review automation for TypeScript, JavaScript, Python, Go, Swift, Kotlin, C, .NET, Java, C, C++, Rust, Ruby, PHP, and Dart/Flutter.
borghei/Claude-Skills
Code review automation for TypeScript, JavaScript, Python, Go, Swift, and Kotlin.
nekomangaorg/Neko
Resolves deep, structural performance bottlenecks in the Kotlin Android codebase.
nekomangaorg/Neko
Resolves deep architectural debt in the Kotlin Android codebase through macro-level refactoring.
ikarenkov/Modo
Spec-driven workflow for non-trivial work. An agent skill from ikarenkov/Modo.
nekomangaorg/Neko
Maintains Kotlin codebase health, idiomatic style, and modern API usage.
zly2006/zhihu-plus-plus
Audit, add, migrate, or remove Zhihu++ Android instrument tests under app/src/androidTest.
zly2006/zhihu-plus-plus
Manage screenshots and other visual assets for GitHub pull requests.
zly2006/zhihu-plus-plus
Build, install, and launch the Zhihu++ Android app on a connected device using ADB.
zly2006/zhihu-plus-plus
以 subagent 启动的 UI 挑剔用户评审。Use when the user, AGENTS, or the current task requires “挑剔的用户”.
zly2006/zhihu-plus-plus
Release the LaTeX fork used by Zhihu++. An agent skill from zly2006/zhihu-plus-plus.
zly2006/zhihu-plus-plus
Coordinate Zhihu++ issue implementation and pull requests when the user explicitly asks for subagents or when multiple independent issues or scopes have real parallel value.
Works with
Categories
A skill your agent uses for Zhihu++ maintenance work that scans Kotlin main sources for low-call functions, structurally similar function bodies, dead code, pure forwarding wrappers, pointless…. Zhihu Pp AI Slop Cleaner is an agent skill from zly2006/zhihu-plus-plus. Use for Zhihu++ maintenance work that scans Kotlin main sources for low-call functions, structurally similar function bodies, dead code, pure forwarding wrappers, pointless abstractions, repeated helpers, and cross-platform duplicate glue before refactoring or PR cleanup.
Zhihu Pp AI Slop Cleaner fits situations like: zhihu++ maintenance work that scans Kotlin main sources for low-call functions; structurally similar function bodies; pure forwarding wrappers; pointless abstractions.
Run `npx skills add zly2006/zhihu-plus-plus --skill zhihu-pp-ai-slop-cleaner -a claude-code`. Or copy the skill folder (.agents/skills/zhihu-pp-ai-slop-cleaner in zly2006/zhihu-plus-plus) into .claude/skills/zhihu-pp-ai-slop-cleaner in your project. Claude Code loads it when a task matches its description.
Run `npx skills add zly2006/zhihu-plus-plus --skill zhihu-pp-ai-slop-cleaner -a codex`. Or copy the skill folder (.agents/skills/zhihu-pp-ai-slop-cleaner in zly2006/zhihu-plus-plus) into .agents/skills/zhihu-pp-ai-slop-cleaner in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add zly2006/zhihu-plus-plus --skill zhihu-pp-ai-slop-cleaner -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/zhihu-pp-ai-slop-cleaner, .gemini/skills/zhihu-pp-ai-slop-cleaner, .github/skills/zhihu-pp-ai-slop-cleaner and .opencode/skills/zhihu-pp-ai-slop-cleaner in your project.
Going by SKILL.md and its folder, Zhihu Pp AI Slop Cleaner needs Python for the scripts in its folder and the command-line tools its instructions call (python3, git and rg). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Zhihu Pp AI Slop Cleaner is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.7k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Zhihu Pp AI Slop Cleaner: Code Reviewer (alirezarezvani/claude-skills, 28k stars), Code Reviewer (borghei/Claude-Skills, 891 stars), Architecture Overclock (nekomangaorg/Neko, 2.8k stars) and Architecture Renovator (nekomangaorg/Neko, 2.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
zly2006 (a GitHub user) maintains it in zly2006/zhihu-plus-plus, which has 4,229 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on October 10, 2026.
Source: zly2006/zhihu-plus-plus on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.