code-improver
- 作者仓库星标 0
- 作者更新于 2026年8月25日 07:09
- 作者仓库 skills
Code Improver
Improve any code target by running /code-improver:improve — a dynamic workflow that
loops the named reviewer and a fixer subagent until a review reports zero critical/major
findings, then strips its own residue. The loop, its ledger, and its guards live in the
workflow; this skill collects the three inputs the generic entry requires and relays the
outcome.
Starting the loop
The user provided: $ARGUMENTS (if empty, take the details from the conversation).
1. Collect the three required inputs — no guessing
- Target: the absolute path to the directory under improvement. Resolve relative paths against the working directory; verify the directory exists.
- Reviewer: the installed skill or agent that performs every review. The user must
name it — there is no default and no bundled reviewer. Determine the kind:
- a namespaced agent (e.g.
plugin-dev:skill-reviewer) →"kind": "agent" - an installed skill (e.g.
pr-review-toolkit:review-pr) →"kind": "skill"If the name could be either, check the session's skill listing; if still ambiguous, ask the user. If no reviewer was named, ask — do not pick one.
- a namespaced agent (e.g.
- Scope: repo-relative globs the loop may touch. The generic entry requires it
explicitly; if the user did not give one, propose the target directory
(
<repo-relative-target>/**) and confirm before launching.
2. Resolve the loop script
The loop is the dynamic workflow workflows/improve.js in this plugin. Launch it by
path: scriptPath takes a resolved absolute path, and the Workflow tool's name resolves
built-in and project workflows, so a marketplace-installed one may not answer to
code-improver:improve. Try in order, first hit wins — the home directories come before
. so an installed copy beats a checkout of this marketplace:
Bash: ls -d -- "${CLAUDE_PLUGIN_ROOT}/workflows/improve.js"Bash: ls -d -- "${CODEX_PLUGIN_ROOT}/workflows/improve.js"(if that variable is set instead)Bash: find ~/.claude ~/.codex . -maxdepth 7 -path '*/code-improver/workflows/improve.js' -print -quit 2>/dev/null
Use the path exactly as printed. Its plugin directory — the path with
/workflows/improve.js removed — is pluginRoot. If all three come back empty, try
{name: "code-improver:improve"} once; if that is unavailable too, stop and say the loop
could not be located. Do not assemble a path by hand and do not improvise the loop.
3. Invoke the workflow
Run it with the Workflow tool, {scriptPath: "<the path from step 2>", args: {...}}:
{
"target": "<absolute target path>",
"reviewer": { "kind": "agent|skill", "name": "<namespaced-name>", "notes": "<what the reviewer should know about the target>" },
"scope": ["<repo-relative-glob>/**"],
"pluginRoot": "<the plugin directory from step 2>",
"maxRounds": 5
}
maxRoundsonly if the user asked for a different cap.pluginRootlets the run find its metrics collector; omit the key only if step 2 fell through to the workflow name — the workflow then searches for itself.finalize({"version_bump": bool, "narration_strip": bool, "docs_pass": bool}) only to override the defaults: version bump when the target sits inside a plugin, narration strip and docs pass always.decisiononly on continuation (below).
The workflow runs in the background and needs no babysitting: it reviews, fixes, re-reviews, checks scope after every fix round, and can only complete on a clean review. It never commits; all changes stay in the working tree.
If the Workflow tool is unavailable or denied, stop and say so. Do not improvise the loop inline with direct edits — the ledger, scope guard, and escalation guarantees live in the workflow, and an inline imitation has none of them.
If the result is halted: "reviewer-unavailable", relay it and stop. The named
reviewer is not installed in this session; tell the user which plugin provides it and
re-run after installing. Do not review the target yourself.
Do not end your turn while the loop is running. The Workflow tool returns a task id immediately; the result comes later. In an interactive session the completion notification re-invokes you — wait for it. In a non-interactive run (scripted, CI, eval) there is no later turn: stopping abandons the loop mid-round, so after launching, poll the task (TaskOutput with the returned task id, or sleep-and-recheck) until it completes, then relay the result. A session that answers "the loop is running, I'll report later" has lost the run.
Relaying the result
The workflow returns a structured result. Report it honestly — the distinctions matter:
converged: true— the last action was a review with zero critical/major findings. Report rounds used, remaining minor findings (open_minor_count), and the artifact paths (ledger_path,metrics).capped: true— the fix budget ran out and the FINAL review still found blocking issues. Say plainly: capped, NOT converged, and listopen_blocking. Do not present this as success.escalation— the loop detected it was not converging (recurring findings, non-decreasing counts, or a fix relocating a problem). Relay the escalation message and finding ids to the user: this needs a design decision, not more rounds.halted— a guard fired (scope violation, unregistered new files, a dead or unavailable reviewer, or a finalize pass whose own edits failed the check that follows it). Relay the paths inviolations/new_untracked_files, the sites infinalize_regressions, and the notes.notesalways travel with the result — surface them; they include loud warnings such as "a git repository was initialized".
Continuing after an escalation
The loop stops on escalation by design. When the user decides, start a fresh run with
the same target and reviewer plus:
{ "decision": "<the user's ruling, verbatim>" }
The new run reloads the on-disk ledger, so every finding, rejection, and verdict carries over — rounds restart, re-derivation does not.
To stop a running loop, stop the workflow task (TaskStop); the ledger on disk is current to the last round and a re-run resumes from it.
When NOT to use
- A Claude Code skill: use the
skill-improverentry — it wires the right reviewer - A branch / pull request: use the
pr-improverentry — it derives scope from the diff - One-time review: dispatch the reviewer directly; the loop's value is iteration
- Quick single fixes: edit the file directly
- 流狐分类
- 工程开发
- 作者声明 Agent
- 未找到明确声明;不据此推断已兼容或已测试
- 静态检查
- 88 / 100 · 启发式扫描,不代表运行安全
- 作者 / 版本 / 许可
- @trailofbits · 未声明 license
- 流狐 Token 估算
- 中等消耗
- 流狐接入估算
- 即装即用
- 是否需要外部 API Key
- 未发现要求
- 检测到的系统要求
- 未声明
- 底层运行要求
- 未声明
- 检测到的文件与系统行为
-
- 只读
- 允许写入 / 修改
- 检测到的网络行为
- 仅限本地
- 安装命令数
- 无(仅作为资料)
档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。
需要注意: 未限定 allowed-tools,默认拥有全部工具权限。
# Relaying the result
- **`converged: true`** — the last action was a review with zero critical/major findings.
- **`capped: true`** — the fix budget ran out and the FINAL review still found blocking
- **`escalation`** — the loop detected it was not converging (recurring findings,
- **`halted`** — a guard fired (scope violation, unregistered new files, a dead or
- **`notes`** always travel with the result — surface them; they include loud warnings The user provided: $ARGUMENTS (if empty, take the details from the conversation).
Target: the absolute path to the directory under improvement. Resolve relative paths against the working directory; verify the directory exists. Reviewer: the installed skill or agent that performs every review. The user must
The loop is the dynamic workflow workflows/improve.js in this plugin. Launch it by path: scriptPath takes a resolved absolute path, and the Workflow tool's name resolves built-in and project workflows, so a marketplace-installed one may not answer to
Run it with the Workflow tool, {scriptPath: "<the path from step 2>", args: {...}}: maxRounds only if the user asked for a different cap. pluginRoot lets the run find its metrics collector; omit the key only if step 2 fell
The workflow returns a structured result. Report it honestly — the distinctions matter: converged: true — the last action was a review with zero critical/major findings. Report rounds used, remaining minor findings (openminorcount), and the artifact
The loop stops on escalation by design. When the user decides, start a fresh run with the same target and reviewer plus: The new run reloads the on-disk ledger, so every finding, rejection, and verdict carries
# Code Improver
Improve any code target by running `/code-improver:improve` — a dynamic workflow that
loops the named reviewer and a fixer subagent until a review reports zero critical/major
findings, then strips its own residue. The loop, its ledger, and its guards live in the
workflow; this skill collects the three inputs the generic entry requires and relays the
outcome.
## Starting the loop
The user provided: `$ARGUMENTS` (if empty, take the details from the conversation).
### 1. Collect the three required inputs — no guessing
1. **Target**: the absolute path to the directory under improvement. Resolve relative
paths against the working directory; verify the directory exists.
2. **Reviewer**: the installed skill or agent that performs every review. The user must
name it — there is no default and no bundled reviewer. Determine the kind:
- a namespaced agent (e.g. `plugin-dev:skill-reviewer`) → `"kind": "agent"`
- an installed skill (e.g. `pr-review-toolkit:review-pr`) → `"kind": "skill"`
If the name could be either, check the session's skill listing; if still ambiguous,
ask the user. If no reviewer was named, ask — do not pick one.
3. **Scope**: repo-relative globs the loop may touch. The generic entry requires it
explicitly; if the user did not give one, propose the target directory
(`<repo-relative-target>/**`) and confirm before launching.
### 2. Resolve the loop script
The loop is the dynamic workflow `workflows/improve.js` in this plugin. Launch it by
path: `scriptPath` takes a resolved absolute path, and the Workflow tool's `name` resolves
built-in and project workflows, so a marketplace-installed one may not answer to
`code-improver:improve`. Try in order, first hit wins — the home directories come before
… 作者原文负责流程事实;流狐只索引当前章节、要点、文件与命令。
章节 -> Starting the loop → 1. Collect the three required inputs — no guessing → 2. Resolve the loop script → 3. Invoke the workflow → Relaying the result → Continuing after an escalation
要点 -> Target · Reviewer · Scope · If the Workflow tool is unavailable or denied, stop and say so. · If the result is halted: "reviewer-unavailable", relay it and stop. · Do not end your turn while the loop is running. · converged: true · capped: true
文件/命令 -> /code-improver:improve · $ARGUMENTS · plugin-dev:skill-reviewer · "kind": "agent" · pr-review-toolkit:review-pr · "kind": "skill" · <repo-relative-target>/ · workflows/improve.js
内容 SHA-256 -> 39856e1d58a7
方法与流程
适用与边界
原文中的明确线索
/code-improver:improve、$ARGUMENTS、plugin-dev:skill-reviewer、"kind": "agent"、pr-review-toolkit:review-pr、"kind": "skill"、<repo-relative-target>/、workflows/improve.js