Review
tisfeng/Easydict
审查本地工作树、提交、range、文件或模块,找出有证据的缺陷。GitHub PR 审查使用 review-pr;代码清理使用 code-simplifier。
Simplify recently changed code for clarity, reuse, quality, and efficiency while preserving behavior.
$ npx skills add leo-kuang-ai/spec-first --skill spec-simplify-code -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install leo-kuang-ai/spec-first spec-simplify-code --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/leo-kuang-ai/spec-first.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/spec-simplify-code .claude/skills/spec-simplify-code && 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 "spec-simplify-code" agent skill from https://github.com/leo-kuang-ai/spec-first/tree/master/skills/spec-simplify-code into .claude/skills/spec-simplify-code/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spec-simplify-code", 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/leo-kuang-ai/spec-first/tree/master/skills/spec-simplify-codeType 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 leo-kuang-ai/spec-first --skill spec-simplify-code -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install leo-kuang-ai/spec-first spec-simplify-code --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/leo-kuang-ai/spec-first.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/spec-simplify-code .agents/skills/spec-simplify-code && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "spec-simplify-code" agent skill from https://github.com/leo-kuang-ai/spec-first/tree/master/skills/spec-simplify-code into .agents/skills/spec-simplify-code/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spec-simplify-code", 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 leo-kuang-ai/spec-first --skill spec-simplify-code -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install leo-kuang-ai/spec-first spec-simplify-code --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/leo-kuang-ai/spec-first.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/spec-simplify-code .cursor/skills/spec-simplify-code && 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 "spec-simplify-code" agent skill from https://github.com/leo-kuang-ai/spec-first/tree/master/skills/spec-simplify-code into .cursor/skills/spec-simplify-code/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spec-simplify-code", 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/leo-kuang-ai/spec-first.git --path skills/spec-simplify-code--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 leo-kuang-ai/spec-first --skill spec-simplify-code -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install leo-kuang-ai/spec-first spec-simplify-code --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/leo-kuang-ai/spec-first.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/spec-simplify-code .gemini/skills/spec-simplify-code && 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 "spec-simplify-code" agent skill from https://github.com/leo-kuang-ai/spec-first/tree/master/skills/spec-simplify-code into .gemini/skills/spec-simplify-code/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spec-simplify-code", 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 leo-kuang-ai/spec-first spec-simplify-codeInstalls 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 leo-kuang-ai/spec-first --skill spec-simplify-code -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/leo-kuang-ai/spec-first.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/spec-simplify-code .github/skills/spec-simplify-code && 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 "spec-simplify-code" agent skill from https://github.com/leo-kuang-ai/spec-first/tree/master/skills/spec-simplify-code into .github/skills/spec-simplify-code/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spec-simplify-code", 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 leo-kuang-ai/spec-first --skill spec-simplify-code -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install leo-kuang-ai/spec-first spec-simplify-code --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/leo-kuang-ai/spec-first.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/spec-simplify-code .opencode/skills/spec-simplify-code && 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 "spec-simplify-code" agent skill from https://github.com/leo-kuang-ai/spec-first/tree/master/skills/spec-simplify-code into .opencode/skills/spec-simplify-code/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spec-simplify-code", 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.
spec-simplify-codeSimplify recently changed code for clarity, reuse, quality, and efficiency while preserving behavior.
Spec Simplify Code is an agent skill from leo-kuang-ai/spec-first. Simplify recently changed code for clarity, reuse, quality, and efficiency while preserving behavior. Use for tidy/refactor passes; use spec-debug for bugs. Not for new features or behavior changes.
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 29 other files, including reference files (for example `evals/cases/bug-request-routes-debug.yaml`, `evals/cases/docs-only-no-yield.yaml` and `evals/cases/r2-elegant-refactor.yaml`).
It sits in Development, covering Code simplification. It works with Git. The repository describes itself as: 仓库原生 AI Coding Harness —— 把一次性 AI 对话变成可治理、可验证、可沉淀的工程闭环 · spec-first.cn. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 74655dc. 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 script files (JavaScript, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
gitFrom 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.
Spec Simplify Code loads about 2.4k tokens when it runs, and up to ~3.9k if it reads all its reference files. Until then it costs about 54 tokens; SKILL.md has 1,230 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); files beside SKILL.md are not scanned.
The full file from leo-kuang-ai/spec-first at commit 74655dc, republished under its MIT licence (© leo-kuang-ai). 1,230 words, ~2,354 tokens.
.claude/skills/spec-simplify-code/SKILL.md (or your agent's skills folder). This skill also uses 21 other files; get the full folder from GitHub.Simplify recently changed code for clarity, reuse, quality, and efficiency while preserving exact behavior. Prioritize readable, explicit code over compact code — fewer lines is not the goal.
Not-a-simplification input first. A request that reports broken behavior — a crash, a failing test, wrong output — is a bug, not a simplification pass. Do not fix the bug here. Name spec-debug in the reply and route out; the caller can return for a behavior-preserving cleanup after the fix lands.
Resolve the simplification scope in this order:
git diff origin/main... or against the configured upstream). This covers the common case of "simplify everything I've added on this feature branch before opening a PR." If the branch has no upstream or base ref, fall back to staged + unstaged changes (git diff HEAD).If none of the above produces a non-empty scope, stop and ask the user what to simplify rather than guessing. Use the platform's blocking question tool: AskUserQuestion in Claude Code (call ToolSearch with select:AskUserQuestion first if its schema isn't loaded), request_user_input in Codex. Fall back to numbered options in chat only when no blocking tool exists in the harness or the call errors (e.g., Codex edit modes) — not because a schema load is required. Never silently skip the question.
Preflight — skip a no-yield scope before loading review lenses. If the
resolved scope contains no substantive human-authored code and consists only
of documentation/Markdown, generated or vendored files, dependency/lockfiles,
or purely mechanical formatting, lint, or mass-rename churn, stop with a
one-line nothing to simplify result. On a mixed diff, narrow the scope to the
substantive code files. This is a change-kind gate, not a size threshold, and
it never widens beyond caller-authorized paths.
When the caller provides a plan as context, the plan is not additional
simplification scope. Preserve any session-settled: structural decisions:
deliberately separate implementations or duplicated package-local runtime
assets remain separate even when consolidation would otherwise look cleaner.
在派发 reviewer 前记录:
worker_dispatch_authorization: authorized | missing
capability_probe: not_applicable | attempted | unavailable
worker_dispatch_capability: available | missing | unknown
worker_context_isolation: isolated | inherited | unknown
worker_model_override: supported | unsupported | unknown
worker_bounded_parallelism: supported | unsupported | unknownworkflow invocation does not authorize dispatch。只有当前用户或可见 upstream handoff 明确请求 subagent、delegated work、persona 或 parallel work 时,才可把三个 review lens 派发给 generic workers。缺授权时不得探测 tool schema,固定为 capability_probe: not_applicable + worker_dispatch_capability: unknown,inline 或 serial 执行全部三个 lens 并记录 dispatch_authorization_missing。只有授权后才把 current-session registry/schema 作为 provider_untrusted evidence 检查:确认缺失时记录 subagent_capability_missing;surface 不可用、schema 不完整或候选不唯一时记录 worker_capability_unproven,均 inline 或 serial。隔离、模型覆盖和有界并发只取 live facts;required isolation 未满足时保持依赖 gate 打开,model unknown 时继承,parallelism unknown 时串行。记录 worker_dispatch_outcome。Inline fallback 保留三个 rubric 的完整覆盖,但不得声称三个 independent reviewers 或 multi-agent coverage。
When authorization is present and the current-session semantic probe yields one eligible generic worker candidate, dispatch three bounded workers — code-reuse, code-quality, and efficiency reviewers. Otherwise run the reviews inline or serially. For each reviewer or inline lens, read its prompt asset from this skill's directory and use the full file content together with the resolved scope (the full diff or file set) so the review has complete context:
references/personas/code-reuse-reviewer.md — existing utilities, duplicated functionality, reimplemented stdlib/runtime primitives.references/personas/code-quality-reviewer.md — redundant state, parameter sprawl, copy-paste, leaky abstractions, stringly-typed code, dead code, over-nesting, and the over-simplification balance guard.references/personas/efficiency-reviewer.md — unnecessary work, missed concurrency, hot-path bloat, no-op updates, memory leaks.Do not paraphrase these rubrics from memory — read each file and pass it verbatim, or the reviewer loses the gating rules that keep the pass behavior-preserving.
Bounded dispatch. When dispatch is authorized and available, queue the three reviewers and launch only as many as the harness accepts at once; treat a concurrency/active-agent-limit error as backpressure (leave the reviewer queued and retry after a slot frees), not as reviewer failure. Inline fallback runs the lenses serially when shared context or edit overlap makes concurrency unsafe.
Model selection. Request the balanced mid-tier only when worker_model_override: supported and the current schema exposes an explicit selector. Otherwise omit the override, inherit the parent model, and record model_override_unsupported or model_override_unknown as applicable; task wording alone does not select a different model.
Permission mode. For an authorized dispatch, omit the mode parameter so the user's configured permission settings apply. Permission settings are execution conditions, not dispatch authorization.
Complete all three review lenses, whether dispatched or inline. Aggregate their findings and fix each issue directly. If a finding is a false positive or not worth addressing, note it and move on. Do not argue with the finding or raise questions to the user, just skip it.
Before applying each fix, confirm it preserves behavior: same output for every input, same error behavior, and same side effects and ordering. If a fix can't clear that test, skip it — automated checks in Step 4 don't cover every behavior.
Never simplify away a safety check. Input validation at trust boundaries, error handling that prevents data loss, security checks (authorization, escaping, sanitization), and accessibility affordances are not removable boilerplate — preserve them even when a finding frames them as redundant or inline-able. Code that drops one of these is not simpler, it is unfinished. If a proposed simplification would thin or remove one, skip it.
The premise of this skill is that simplification preserves exact functionality. After applying fixes:
Run typecheck and lint over the full project. They are usually fast and catch the most common simplification regressions — broken imports, unused exports, dropped type narrowings, dead code other modules still reference.
Run tests:
Surface any failure clearly with the failing check name and the relevant output. Do not relax assertions, weaken type signatures, or skip tests to make checks pass — that defeats the "preserves functionality" guarantee. Either fix the underlying break introduced by simplification, or revert the specific change that caused the regression.
If no test suite, lint, or typecheck is configured, state that explicitly in the summary; do not silently skip verification.
Briefly summarize what was good vs improved and fixed, including which checks were run and their results. If there were no findings to act on, confirm the code didn't require any changes.
Quantify the impact by dimension. Report what was actually applied, not a line count: fixes applied per reviewer dimension (reuse, quality, efficiency), how many findings were skipped as false-positive or not worth addressing, and the behavior-preservation result (checks run and outcome). For example: "Applied 6 — reuse 2, quality 3, efficiency 1; skipped 2 false positives; typecheck + lint clean, 11 scoped tests pass." Do not headline a net-lines-removed figure or frame fewer lines as the win — many clarity, safety, and efficiency fixes preserve or add lines. The measure is what improved and that behavior held, not how much code shrank.
© leo-kuang-ai, MIT. 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 21 other files (references) in skills/spec-simplify-code of leo-kuang-ai/spec-first.
Open the folder on GitHubat commit 74655dc
Spec Simplify Code 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 |
|---|---|---|---|---|---|---|
| Spec Simplify Code this skillleo-kuang-ai/spec-first | 107 | — | ~2.4k | Automated safety check: Pass | MIT | |
| Reviewtisfeng/Easydict | 15k | — | ~659 | Automated safety check: Pass | GPL-3.0 | |
| Disciplined Worktree Promotionnathanmcnulty/nathanmcnulty | 441 | — | ~2.1k | Automated safety check: Pass | Unlicense | |
| Absolute Simplifymaddhruv/absolute | 218 | — | ~6.1k | Automated safety check: Pass | MIT | |
| Pragmatic Reviewheyitsnoah/claudesidian | 2.6k | — | ~2.6k | Automated safety check: Pass | MIT | |
| Code SimplifierTwiTech-LAB/devchain | 101 | — | ~2k | Automated safety check: Pass | Custom licence |
tisfeng/Easydict
审查本地工作树、提交、range、文件或模块,找出有证据的缺陷。GitHub PR 审查使用 review-pr;代码清理使用 code-simplifier。
nathanmcnulty/nathanmcnulty
Guides agents working in isolated git worktrees or short-lived branches on what to keep, discard or promote, so the accepted baseline branch stays clean.
maddhruv/absolute
A skill your agent uses when the user wants to simplify, clean up, refactor, tidy, or refine code — their staged/unstaged git changes or a target file/path.
heyitsnoah/claudesidian
Interactive pragmatic code review focusing on YAGNI and KISS principles.
TwiTech-LAB/devchain
Review a change set for reuse, simplification, efficiency, and altitude problems, then apply the fixes while preserving exact behavior.
Mathews-Tom/armory
Deep code simplification and refactoring preserving behavior across Python, Go, TypeScript, Rust.
leo-kuang-ai/spec-first
Audit mobile App PRD/Figma/local-source consistency across page routes, KMP/Clean Architecture, components, analytics, i18n, engineering quality, and industry lenses before runtime validation; use…
leo-kuang-ai/spec-first
Create a durable cross-session handoff or resume from a user-selected continuity source.
leo-kuang-ai/spec-first
Give a decisive, project-grounded verdict on an external input — judged against the current project, not in the abstract.
leo-kuang-ai/spec-first
Resolve PR review feedback by evaluating validity and fixing issues with conflict-aware resolver dispatch.
leo-kuang-ai/spec-first
Analyze explicit Riffrec product-feedback captures, including riffrec-.zip, the Riffrec session.json + events.json + recording.webm + voice.webm bundle, or media/notes the user identifies as a…
leo-kuang-ai/spec-first
Document a recently solved problem or durable project vocabulary in docs/solutions/ or CONCEPTS.md.
Works with
Categories
Simplify recently changed code for clarity, reuse, quality, and efficiency while preserving behavior. Spec Simplify Code is an agent skill from leo-kuang-ai/spec-first. Simplify recently changed code for clarity, reuse, quality, and efficiency while preserving behavior.
Spec Simplify Code fits situations like: tidy/refactor passes; use spec-debug for bugs.
Run `npx skills add leo-kuang-ai/spec-first --skill spec-simplify-code -a claude-code`. Or copy the skill folder (skills/spec-simplify-code in leo-kuang-ai/spec-first) into .claude/skills/spec-simplify-code in your project. Claude Code loads it when a task matches its description.
Run `npx skills add leo-kuang-ai/spec-first --skill spec-simplify-code -a codex`. Or copy the skill folder (skills/spec-simplify-code in leo-kuang-ai/spec-first) into .agents/skills/spec-simplify-code 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 leo-kuang-ai/spec-first --skill spec-simplify-code -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/spec-simplify-code, .gemini/skills/spec-simplify-code, .github/skills/spec-simplify-code and .opencode/skills/spec-simplify-code in your project.
Going by SKILL.md and its folder, Spec Simplify Code needs JavaScript for the scripts in its folder and the command-line tools its instructions call (git). Our summary lists: Node.js.
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. Review the folder before installing.
Spec Simplify Code is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.6k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Spec Simplify Code: Review (tisfeng/Easydict, 15k stars), Disciplined Worktree Promotion (nathanmcnulty/nathanmcnulty, 441 stars), Absolute Simplify (maddhruv/absolute, 218 stars) and Pragmatic Review (heyitsnoah/claudesidian, 2.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
leo-kuang-ai (a GitHub user) maintains it in leo-kuang-ai/spec-first, which has 107 GitHub stars. The repository holds 35 skills in this directory. The repository was last updated on September 24, 2026.
Source: leo-kuang-ai/spec-first on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.