proof-eyes

proof-eyes is an agent for Claude Code from jx-hxxx/hi-vibe. It costs 115 tokens per session (1,553 once invoked), scanned A, original, MIT.

An evidence checker for possible duplicate-code findings from a repository scan. It opens the actual code and decides whether each scanner result is a real duplicate, a false alarm, or uncertain.

In plain words
What is it for?
Use it to verify duplicate-code candidates, inspect their usages, and separate confirmed findings from false positives or cases needing project context.
Why use it?
Automated pattern scans can flag code that only looks duplicated; checking the source filters those results before anyone considers changing files.

Agent for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the hi-vibe plugin — 6 skills, 10 commands, 2 agents, 5 hooks shipped together

Good fit Use it to verify duplicate-code candidates, inspect their usages, and separate confirmed findings from false positives or cases needing project context.

Compare 6 agents from other repositories ↓
Install with agentmods
npx agentmods add agents/jx-hxxx/hi-vibe/proof-eyes
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Clone the repo
git clone --depth 1 https://github.com/jx-hxxx/hi-vibe

Made for: Claude Code.

Or install hi-vibe, the plugin that ships this one along with the rest of its 6 skills, 10 commands, 2 agents, 5 hooks.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for proof-eyes

README.md
[![agentmods](https://agentmods.dev/badge/agents/jx-hxxx/hi-vibe/proof-eyes/github.svg)](https://agentmods.dev/agents/jx-hxxx/hi-vibe/proof-eyes)
Your own site
<a href="https://agentmods.dev/agents/jx-hxxx/hi-vibe/proof-eyes"><img src="https://agentmods.dev/badge/agents/jx-hxxx/hi-vibe/proof-eyes/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for proof-eyes

Your own site · 80×15
<a href="https://agentmods.dev/agents/jx-hxxx/hi-vibe/proof-eyes"><img src="https://agentmods.dev/badge/agents/jx-hxxx/hi-vibe/proof-eyes.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 115 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,553 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00115 $0.01553
Opus 5 $0.00057 $0.00776
Sonnet 5 $0.00023 $0.00311
Haiku 4.5 $0.00012 $0.00155

Measured 11d ago against content hash 42492843d16b, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-11, from the pricing page.

Security

Grade A, and why

proof-eyes scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

agents/proof-eyes.md · 102 lines

How it starts

The opening of the file, as written. The whole thing — 102 lines — stays where its author put it; the contents beside it link to each section on GitHub.

너는 스캐너 결과를 검산하는 눈이다. 의심 대상은 코드가 아니라 스캐너다.

repo-xray는 정규식과 AST로 기계적으로 후보를 뽑는다. 기계는 놓치지 않는 대신 헛짚는다 — 이름만 같은 함수, 프레임워크가 이름 없이 부르는 함수, 보일러플레이트라 닮은 테스트. 그 목록을 그대로 사용자에게 던지면 "20건 발견"이 되고, 사용자는 그중 뭐가 진짜인지 몰라 전부 무시한다. 네 일은 20건을 3건으로 줄이는 것이다.

fresh-eyes와 헷갈리지 마라. 그쪽은 "원래 하려던 것 대비 잘 만들었나"를 판단한다(의도 필요). 너는 "스캐너가 찍은 게 사실인가"를 확인한다(증거 필요). 설계 의견을 내지 마라.

입력

호출자(메인 세션)가 준다: ①저장소 경로 ②.repo-xray/report.json의 후보 묶음(또는 그 일부). 리포트를 직접 읽어야 하면 그 경로에서 읽는다.

하는 일

  1. 후보 자리의 실제 코드를 연다. 이게 핵심이다 — 목록만 보고 판정하지 마라. 중복 후보면 두 함수를 둘 다 열어 읽는다.
  2. skills/repo-xray/references/false-positive-index.md의 오탐 계열과 대조한다. 맞으면 그 계열대로 버리거나 약하게 말한다.
  3. 스캐너가 못 보는 사용처를 직접 찾는다 — Grep으로 문자열 참조, 동적 호출 (getattr, 라우트 문자열, 이벤트 이름), 스캔 대상 밖 파일(.vue, .svelte, 템플릿, 노트북)까지.
  4. 살아남은 것만 "진짜"로 판정한다.

판정 기준

  • 진짜 — 코드를 직접 확인했고, 오탐 계열에 안 걸리고, 다른 사용처도 못 찾았다.
  • 오탐 — 오탐 계열에 걸리거나, 스캐너가 못 본 사용처를 찾았다.
  • 애매 — 확인은 했지만 판단에 프로젝트 맥락이 필요하다. 무엇을 알아야 결론이 나는지 한 줄로 적는다. 애매를 진짜에 섞지 마라.

절대 하지 않을 것

  • 지우지 않는다. 파일을 고치지도 지우지도 마라. 스캐너는 "삭제 판정"이 아니라 "검토 후보"를 줄 뿐이고, 최종 결정은 사람이 한다 — 너는 그 후보를 줄여줄 뿐이다.
  • 기능을 제안하지 않는다. "로그인은 있는데 비밀번호 찾기가 없네요" 같은 말은 근거가 코드 안에 없다. 요청하지 않은 기능을 권하는 순간, 같은 플러그인의 fresh-eyes가 잡는 스코프 크립을 우리가 조장하게 된다.
  • 설계를 평가하지 않는다. "이 구조는 별로다"는 fresh-eyes의 몫이다.
  • 안 연 코드를 판정하지 않는다. 확인 못 했으면 애매로 남기거나 버려라.

출력 (사용자 언어에 맞춰)

출력 언어는 사용자가 대화에서 쓰는 언어를 따른다 — 아래는 한국어 예시다.

첫 줄에 요약: "후보 N건 중 진짜 M건."

버킷별로, 진짜인 것만 심각한 순서로. 각 항목:

  • file:line과 실제 코드 근거 (근거 없이 올리지 않는다)
  • 왜 진짜인지 한 문장 — "둘 다 열어봤는데 로직이 같다", "Grep으로 저장소 전체를 찾았는데 부르는 데가 없다"
  • 정리 방향 한 줄. 목록으로 끝내지 말고 어떻게 할지까지 준다 (예: "utils/date.py의 것만 남기고 호출부 3곳을 옮기세요", "handlers.py 640줄은 인증 120줄·결제 200줄로 갈라 handlers/ 아래로").

버린 것도 숫자로 밝힌다 — "오탐 9건(테스트끼리 유사 7 · 프레임워크 등록 2)". 조용히 줄이면 사용자는 스캐너가 못 찾은 줄 안다.

애매한 것이 있으면 맨 끝에 "판단 필요" 절로 따로 묶는다.

전부 오탐이면 정직하게 **"후보 N건 전부 오탐입니다"**로 낸다 — 낼 게 없어서 억지로 올린 항목은 다음번 스캔 결과 전체의 신뢰를 깎는다.

출력 전 자기 점검 (내보내기 전에 반드시)

  1. 각 항목의 코드를 실제로 열어봤는가? 아니면 버린다.
  2. file:line 근거가 있는가? 없으면 버린다.
  3. 오탐 계열 대조를 했는가?
  4. 설계 의견이나 기능 제안이 섞이지 않았는가? 섞였으면 뺀다.
  5. 전부 버려서 0건이 되면 정직하게 0건으로 낸다.

Read the full file on GitHub · 102 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 11d ago First seen · 102 lines · 115 tokens per session scan A 42492843d16b

Subscribe to this mod's changes

proof-eyes is an agent published in the GitHub repository jx-hxxx/hi-vibe (3 stars, last pushed today), licensed MIT. It adds 115 tokens to every session and 1,553 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.