code-improver skill
✓ 인증됨지정된 리뷰어 agent 또는 SKILL을 사용하여 리뷰 요구 사항이 충족될 때까지 코드 대상에 대해 자율적인 리뷰 및 수정 루프를 실행합니다.
- GitHub 스타
- 8,136
- 파일
- 1
- 마지막 커밋
- 2026년 11월 11일
- 라이선스
- CC-BY-SA-4.0
- 허용된 도구
- 6
code-improver skill은 무엇을 하나요?
code-improver은(는) agent skill입니다. 지정된 리뷰어 agent 또는 SKILL을 사용하여 리뷰 요구 사항이 충족될 때까지 코드 대상에 대해 자율적인 리뷰 및 수정 루프를 실행합니다.
skill의 SKILL.md에서 생성된 요약입니다.
code-improver skill 정보
개발자는 자율적인 리뷰 및 수정 루프를 실행하여 코드를 개선하는 반복 프로세스를 자동화할 수 있습니다. 이 SKILL은 설치된 모든 agent 또는 SKILL이 될 수 있는 지정된 리뷰어와 fixer 서브agent를 조정하여, 깨끗한 리뷰 결과가 나올 때까지 문제를 해결하는 방식으로 작동합니다. 디렉토리, 모듈 또는 플러그인과 같은 특정 대상을 대상으로 수정 사항을 반복적으로 적용하고 설정된 요구 사항에 따라 검증하여 품질을 높이도록 설계되었습니다.
이 프로세스는 Workflow 도구를 사용하여 발견 사항 원장(findings ledger)을 관리하고, 범위 가드(scope guards)를 적용하며, 수정 사항이 수렴하지 않을 경우 에스컬레이션을 처리하는 백그라운드 스크립트를 실행합니다. 환경 관리를 위해 Bash Glob, Read, TaskOutput과 같은 도구를 사용합니다. 수동 편집과 달리 이 워크플로우는 모든 변경 사항이 커밋 없이 working tree 내에 유지되도록 보장하며, 루프가 수렴했는지, 최대 라운드 제한에 도달했는지, 또는 범위 위반으로 인해 중단되었는지에 대한 구조화된 피드백을 제공합니다.
agent가 수행할 수 있는 작업
- 1반복적인 코드 개선지정된 리뷰어가 심각한 문제를 발견하지 않을 때까지 특정 디렉토리를 개선하는 연속 루프를 실행합니다.
- 2자동화된 품질 강제 적용주요 발견 사항이 0개가 될 때까지 리뷰어와 fixer를 루프시켜 코드가 특정 표준을 충족하도록 합니다.
skill의 SKILL.md를 기반으로 작성되었습니다. 모든 사용 사례는 해당 문서의 인용구와 대조 확인되었습니다.
code-improver skill 설치 방법
각 명령은 skill 폴더를 클라이언트의 skills 디렉터리에 복사합니다. 클라이언트를 재시작하거나 새 세션을 시작하여 로드하세요.플러그인에 code-improver skill 설치
/plugin marketplace add trailofbits/skills /plugin install code-improver@trailofbits
Claude Code에 code-improver skill 설치
~/.claude/skills/code-improver/SKILL.md
$ npx degit trailofbits/skills/plugins/code-improver/skills/code-improver ~/.claude/skills/code-improverClaude Code (project)에 code-improver skill 설치
.claude/skills/code-improver/SKILL.md
$ npx degit trailofbits/skills/plugins/code-improver/skills/code-improver .claude/skills/code-improverCodex에 code-improver skill 설치
~/.agents/skills/code-improver/SKILL.md
$ npx degit trailofbits/skills/plugins/code-improver/skills/code-improver ~/.agents/skills/code-improverGemini CLI에 code-improver skill 설치
~/.gemini/skills/code-improver/SKILL.md
$ npx degit trailofbits/skills/plugins/code-improver/skills/code-improver ~/.gemini/skills/code-improverClaude.ai에 code-improver skill 설치
npx degit trailofbits/skills/plugins/code-improver/skills/code-improver code-improver && zip -r code-improver.zip code-improver # claude.ai → Customize → Skills → + → Create skill → Upload a skill → code-improver.zip
자동 검사
2026년 11월 14일에 실행됨전체 보고서 →자동 검사를 통과했습니다. 보안 감사는 아닙니다. 에이전트가 실행하기 전에 스크립트를 읽어 보세요. 검사 방식
- 소스 저장소 연결 및 접근 가능trailofbits/skills/plugins/code-improver/skills/code-improver is public and reachablegithub.com/trailofbits/skills/tree/HEAD/plugins/code-improve ↗통과
- 오픈 소스 라이선스 (OSI)CC-BY-SA-4.0 is not OSI-approvedspdx.org/licenses/CC-BY-SA-4.0.html ↗결함 발견
- 최근 1년 내 커밋 또는 릴리스Last commit 2026-11-11github.com/trailofbits/skills/commits ↗통과
- 스크립트에 다운로드 후 실행이나 자격 증명 탈취가 없음No scripts in the skill folder통과
- SKILL.md에 숨겨진 지침 없음No override phrases, safeguard switches, credential requests or hidden charactersgithub.com/trailofbits/skills/blob/HEAD/plugins/code-improve ↗통과
- 사전 허용 도구가 제한됨Bash lets the agent run any shell command without askinggithub.com/trailofbits/skills/blob/HEAD/plugins/code-improve ↗결함 발견
SKILL.md
GitHub에서 보기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
Resolve improve.js from this SKILL.md's installed location
to an absolute path and confirm the file exists. Its plugin directory is pluginRoot.
Use this exact plugin copy; if the file is missing, stop.
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.pluginRootis the resolved plugin directory from step 2, for the metrics collector.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
이 스킬의 파일
1code-improver skill 질문
Claude Code에 code-improver skill을 어떻게 설치하나요?
npx degit trailofbits/skills/plugins/code-improver/skills/code-improver ~/.claude/skills/code-improver를 실행합니다. Claude Code는 ~/.claude/skills(모든 프로젝트) 또는 .claude/skills(한 프로젝트)에서 skills를 로드하며, 설명이 작업과 일치할 때 skill을 사용합니다.
code-improver skill을 사용할 수 있는 클라이언트는 무엇인가요?
Agent Skills 형식을 읽는 모든 클라이언트(Claude Code, Codex, Gemini CLI, claude.ai(ZIP으로 업로드))가 사용할 수 있습니다. skill 내 스크립트는 클라이언트가 코드 실행을 허용하는 경우에만 실행됩니다.
개선 루프가 더 이상 진전되지 않으면 어떻게 되나요?
반복되는 발견 사항이나 이슈 수의 감소가 없는 등 루프가 수렴하지 않는다고 감지되면 시스템이 에스컬레이션을 트리거하며, 이때 사용자의 설계 결정이 필요합니다.
도구가 제 저장소에 변경 사항을 자동으로 커밋하나요?
아니요, 워크플로우는 절대 커밋하지 않습니다. 개선 루프 중에 수행된 모든 변경 사항은 working tree에 유지됩니다.