find-simplifications
Use for a periodic repo-wide sweep of qwen-code for accumulated excess surface — dead components and files, orphaned locale keys, exports nothing consumes, added-then-removed scaffolding — filing candidates on a tracking issue and landing only what a maintainer has said yes to. Repo-wide and evidence-first; every consumer is named before anything is deleted. Not for tidying a diff you just wrote (that is bundled `/simplify`) and not for defects (that is `/review`).
git clone --depth 1 https://github.com/QwenLM/qwen-code /tmp/find-simplifications && cp -r /tmp/find-simplifications/.qwen/skills/find-simplifications ~/.claude/skills/find-simplificationsSKILL.md
# Finding qwen-code Simplifications
`AGENTS.md` § Simplicity First — "Minimum code that solves the problem.
Nothing speculative." This skill hunts what that principle already rejected
but that shipped anyway. It owns **correct code nobody needs**, repo-wide,
with no diff to anchor on.
Every candidate names the surface, names **every** consumer, and says what
breaks when it goes. A candidate whose consumers cannot all be named is
dropped — not downgraded, dropped.
Read this file, then the one document for your phase. Do not survey or land
from this file alone; if the phase document cannot be read, stop and say so.
| Phase | Document |
| ------------------------------------------- | ---------------------- |
| Survey (default): find and file | `references/survey.md` |
| Land: turn ONE approved candidate into a PR | `references/land.md` |
## Issue First, PR Second
A run's deliverable is a comment on the tracking issue, **not** a PR.
```
Survey → file candidates on the tracking issue → maintainer says yes to one
→ land that one → one PR, one candidate.
```
This is not ceremony. `AGENTS.md` § Core Infrastructure ends "When in doubt,
escalate. Better to wrongly escalate than to wrongly approve," and an
unrequested batch of deletions is the shape that gets closed. It also makes
the ledger free: the issue that carries the proposals is the same object the
next run reads to avoid re-proposing them.
A maintainer asking for a PR in this session counts as assent — record it on
the ledger before opening the PR.
## Boundaries
| Skill | Owns | Why not this one |
| --------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| bundled `/simplify` | The diff you just wrote; stops when there is no diff | Cannot see surface accumulated across releases |
| `/repo-hygiene` | **Wrong** code — a defect provable by evidence; bans "cleaner / more modern / more consistent" edits | Its six angles are all defect classes |
| bundled `/review` | Judging a change that exists | Your change does not exist yet |
| `/create-issue` | Filing an issue well | Use it to create the ledger issue when missing — it cannot comment; post run comments with `gh issue comment` |
| `/prepare-pr` | `pr-title.txt` / `pr-body.md` from the repo template | Call it in the land phase; do not reinvent PR rules |
| `/verify-pr` | Behavioral A/B evidence for a PR | A deletion has no behavior to demo |
| `/bugfix`, `/feat-dev`, `/deflake`, `/docs-*` | A defect, a feature, a flaky test, prose | None of them remove surface |
## Territory
The split is not taste. `packages/core/package.json` exports `"./src/*"` and
`"./dist/*"`, and `packages/core/src/index.ts` carries ~179 `export * from`
lines, so **every file under `packages/core/src` is reachable from outside
this repo**. The release workflow npm-publishes `@qwen-code/audio-capture`
and the eight `@qwen-code/channel-*` packages with `--access public`, so a
symbol re-exported by their package entry is reachable the same way. No grep
inside this repo can prove such a symbol has no consumer. The same is true
of three surfaces whose consumers are not imports at all: `packages/webui` is
npm-published under its own name (`publishConfig.access: public`, no
`private`), and `packages/core/vendor/**` and `packages/web-shell` ship inside
the published `@qwen-code/qwen-code` tarball — `packages/core/package.json`
lists `vendor` in `files`, and `scripts/copy_bundle_assets.js` copies both
`vendor/` and `web-shell/dist` into the bundle, where `qwen serve` hands the
latter to browsers. Their consumers are registry-, tarball-, or browser-side,
so an in-repo grep for them returns zero hits and the consumer proof passes
vacuously — `getBuiltinRipgrep()` even assembles the vendor path from
segments, so no literal path exists to grep for. Import reachability is the
floor, not the definition: consumption also happens through runtime reads,
loaders, manifests, and tool configs that never appear as imports. The
consumer proof must name the mechanism that consumes the surface; a grep
blind to that mechanism proves nothing, and the rows below mark every such
path this repo ships or loads. A path named by more than one row takes the
most restrictive outcome: Never-a-target beats Report-only, which beats
Landable.
| TerritoryUse after a Codex or Claude Code feature has been implemented in Qwen Code to run the selected reference agent and Qwen Code under the same scenario, capture HTTP and terminal traces, compare request bodies, tool/function schemas, outputs, and iterate until the reproduced behavior is close enough.
Use when reproducing an existing Codex or Claude Code feature in Qwen Code or another agent CLI by choosing a reference agent, capturing HTTP request bodies, prompts, tool/function schemas, terminal output, and then implementing the matching behavior in the target repo.
Review and repair current local changes until they converge, or run Qwen Code Autofix issue and review workflows from GitHub Actions.
Fix a bug from a GitHub issue, following the reproduce-first
Classify a bounded batch of stale PR CI failures and choose the safest response.
Analyze indexed codebases via graph database (neug) and vector index (zvec). Covers call graphs, dependencies, dead code, hotspots, module coupling, architecture reports, semantic search, impact analysis, bug root cause from GitHub issues, class diagrams (UML), and PR review (risk scoring, conflict detection, auto-merge candidates, labeling). Also covers creating, inspecting, and repairing a CodeScope index. Use for: code structure, who calls what, why something changed, similar functions, module boundaries, bug tracing, class relationships, PR risk/conflicts, or any question benefiting from a code knowledge graph. Applies when a `.codegraph` index exists in the workspace, or when the user wants to create one.
Draft and submit a GitHub issue from a user idea or bug description, with bilingual body and correct labels.
Stabilize a flaky test with a minimal, assertion-preserving fix — never by weakening or deleting the check.