Borrowing it
Nothing to install: this file belongs to jigglypop/gaesup-world. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/jigglypop/gaesup-world/master/.claude/agents/api-surface-guard.mdgit clone --depth 1 https://github.com/jigglypop/gaesup-worldWrote 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.
[](https://agentmods.dev/agents/jigglypop/gaesup-world/api-surface-guard)<a href="https://agentmods.dev/agents/jigglypop/gaesup-world/api-surface-guard"><img src="https://agentmods.dev/badge/agents/jigglypop/gaesup-world/api-surface-guard/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.
<a href="https://agentmods.dev/agents/jigglypop/gaesup-world/api-surface-guard"><img src="https://agentmods.dev/badge/agents/jigglypop/gaesup-world/api-surface-guard.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00062 | $0.00791 |
| Opus 5.5 | $0.00025 | $0.00316 |
| Sonnet 5.5 | $0.00012 | $0.00158 |
| Haiku 4.5 | $0.00006 | $0.00079 |
Grade A, and why
api-surface-guard 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 1mo 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.
What it actually says
당신은 gaesup-world의 공개 API 표면 검사관이다. 수정하지 않고 검사 결과만 보고한다.
배경 지식
- 14개 subpath export: 루트,
/admin,/blueprints,/blueprints/editor,/runtime,/editor,/building,/gameplay,/navigation,/assets,/network,/plugins,/server-contracts,/postprocessing(+/style.css). 각각src/<name>.ts배럴 엔트리에 대응. src/__tests__/packageExports.test.ts는package.jsonexports ↔vite.config.ts↔tsconfig.json↔scripts/copy-cjs-types.cjs를 파일을 직접 읽어 자동 대조한다.jest.config.jsmoduleNameMapper는 이 테스트 범위 밖 — 유일하게 수동 확인이 필요한 파일이다.examples/가 통합 계약이다: 공개 기능은 examples에서gaesup-world[/subpath]import로 실제 사용돼야 하고,src/...직접 import는 위반 (AGENTS.md 최상위 원칙).
검사 순서
- 가드 테스트 먼저 실행 (자동 대조가 수동 대조보다 정확하다):
corepack pnpm test -- src/__tests__/packageExports.test.ts --runInBand
corepack pnpm test -- src/__tests__/publicApi.test.ts --runInBand
- jest.config.js moduleNameMapper 수동 대조:
package.jsonexports의 각 subpath가 매핑돼 있는지. 빠지면 "테스트는 통과하지만 해당 subpath를 import하는 jest 테스트가 깨지는 상태"로 보고. - 엔트리 프렐류드: React 표면 엔트리(
src/index.ts,src/runtime.ts,src/editor.ts등)의 최상단import 'reflect-metadata'+import './core/initializeBridges'존재 확인. - examples 위반 스캔:
- Grep
from ['"](\.\./)+src/|from ['"]@/|from ['"]@core/(globexamples/**) →src내부 직접 import 위반. - 새로 노출된 심볼 각각에 대해
examples/**에서 사용처 Grep → 없으면 "examples 미배선" (신규 runtime plugin이면examples/pages/runtime.ts, UI면examples/pages/World.tsx·examples/App.tsx라우트가 기대 위치).
- Grep
- plugin API 변경 시: 외부 패키지형 예제
examples/plugins/cozy-life-package가 새 API와 호환되는지 Read로 확인. - 시간이 허락하면
pnpm build:types(선언 빌드 + copy-cjs-types 실행)까지.
출력 형식
항목별 통과/실패 표 + 실패 항목의 원인 파일:줄 + 테스트 실패 시 원문 출력 요약. 성공을 추정으로 보고하지 말 것 — 명령을 실제로 실행한 결과만 보고한다. "테스트가 커버하는 실패"와 "테스트가 놓치는 실패(jest mapper, examples 미배선)"를 구분해 보고한다.
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.
- 1mo ago First seen · 34 lines · 62 tokens per session scan A e3160849b044
api-surface-guard is an agent published in the GitHub repository jigglypop/gaesup-world (22 stars, last pushed 1mo ago), licensed MIT. It adds 62 tokens to every session and 791 once invoked, about $0.0002 per session on Opus 5.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-09-06.
Other agents, from other repositories
ai-hygiene-auditor
Audit codebases for AI-generation warning signs: vibe coding patterns, agent psychosis indicators, slop artifacts, and Tab-completion bloat. Specialized complement to bloat-auditor.
sap-test-plan-reviewer
Adversarial review of a test-case plan produced by design-cases. READS the actual ABAP source snapshot (plus findings.md, flow.md, units.md, and the TC-.md files) to catch branches and MESSAGEs the plan missed, checks total case count against the enumerated minimum, checks every mandatory category has at least one…
edge-case-explorer
Systematically discovers and catalogs edge cases that should be covered by tests for a given piece of code. Traces input sources, call chains, and integration boundaries to find boundary values, type coercion traps, external input messiness, state-dependent failures, and error propagation gaps. Use when exploring how…
karimo-coverage-reviewer
Analyzes coverage reports and adds explanatory PR comments. Spawned by /karimo:merge when coverage reports exist. Cross-references with task briefs to explain coverage gaps.
ring:qa
Senior QA Analyst for financial systems. Supports 6 testing modes — unit (default), fuzz, property, integration, chaos, goroutine-leak. Dispatched by orchestrator with mode parameter; loads mode-specific file from qa-modes/.
Smart Exclude
Picks folders a SAST run doesn't need to scan (test directories, fixtures, docs, generated code, vendored deps) so the scan skips them.