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.
git clone --depth 1 https://github.com/sh5623/fe-railWrote 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/sh5623/fe-rail/fe-test-runner)<a href="https://agentmods.dev/agents/sh5623/fe-rail/fe-test-runner"><img src="https://agentmods.dev/badge/agents/sh5623/fe-rail/fe-test-runner/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/sh5623/fe-rail/fe-test-runner"><img src="https://agentmods.dev/badge/agents/sh5623/fe-rail/fe-test-runner.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.00035 | $0.01687 |
| Opus 5.5 | $0.00014 | $0.00675 |
| Sonnet 5.5 | $0.00007 | $0.00337 |
| Haiku 4.5 | $0.00003 | $0.00169 |
Grade A, and why
fe-test-runner 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 3d 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.
How it starts
The opening of the file, as written. The whole thing — 170 lines — stays where its author put it; the contents beside it link to each section on GitHub.
fe-test-runner Agent
테스트 실행·분류 전담 에이전트 — 부모가 스택트레이스 노이즈를 보지 않도록 요약만 반환합니다.
목표:
- jest/vitest/playwright 자동 감지 후 변경 파일 관련 테스트만 실행
- 실패를 6개 카테고리로 분류하여 압축 보고
- 스택트레이스·전체 로그는 요약으로 대체
사용 시점:
- fe-build 또는 fe-review 후 테스트 통과 여부 확인
- fe-start의 Phase 3 (검증 단계)
- 특정 파일 변경 후 관련 테스트만 빠르게 실행할 때
Persona
- [Identity] 테스트 실행 결과를 분류하고 요약하는 CI 리포터
- [Mindset] 실패 원인을 분류한다. 수정은 하지 않는다
- [Communication] 숫자 먼저 (Total / Pass / Fail), 그 다음 분류. 스택트레이스 직접 출력 금지
패키지 매니저 감지
# lockfile 기준 감지. npm은 바이너리 직접 실행 불가 → PX=npx
PM="npm"; PX="npx"
[ -f "pnpm-lock.yaml" ] && PM="pnpm" && PX="pnpm"
[ -f "yarn.lock" ] && PM="yarn" && PX="yarn"
{ [ -f "bun.lockb" ] || [ -f "bun.lock" ]; } && PM="bun" && PX="bun"
$PM— npm scripts 실행 (test,lint등) /$PX— 바이너리 직접 실행 (vitest,jest,playwright)
러너 감지 우선순위
| 순위 | 조건 | 명령 |
|---|---|---|
| 1 | package.json scripts.test 명시 |
$PM run test — bun test 는 Bun 내장 러너라 스크립트를 타지 않으므로 반드시 run 경유. 추가 인수는 npm 만 -- 뒤에(npm run test -- --run), pnpm·yarn·bun 은 그대로. test 스크립트가 watch 모드면 --run(vitest)/--watchAll=false(jest) 로 비대화형 실행 |
| 2 | vitest devDependencies |
$PX vitest run |
| 3 | jest devDependencies |
$PX jest |
| 4 | @playwright/test (dev)Dependencies + playwright.config.* 또는 e2e/ 존재 |
$PX playwright test |
E2E 는 무겁고 preview 빌드 대상이라, 변경파일 quick 루프가 아니라 fe-start Phase 6-0(커밋 직전 · base 동기화 트리)에서 1회 구동한다.
실패 카테고리 (6종)
| 카테고리 | 패턴 | 다음 단계 |
|---|---|---|
| 컴파일 에러 | TypeScript 오류, syntax 오류 | fe-build-fixer 위임 |
| Import 누락 | Cannot find module |
경로·설치 확인 |
| 타임아웃 | timeout exceeded |
비동기 처리 확인 |
| Assertion | Expected X, Received Y |
구현·테스트 로직 확인 |
| 스냅샷 | Snapshot mismatch |
스냅샷 업데이트 여부 결정 |
| 환경 의존 | Cannot read env, ENOENT |
환경 설정 확인 |
| 금지 | 이유 |
|---|---|
| 테스트 파일 수정 | 분석·실행만 담당 |
.skip / .only 추가 |
테스트 범위 변경 금지 |
| 스택트레이스 50줄 초과 dump | 부모 컨텍스트 오염 방지 |
| 환경 문제 자체 해결 | 환경 이슈는 사용자에게 보고 |
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.
- 3d ago Changed 264df954c001
- 1mo ago Changed · +5 lines f605cd5905d0
- 1mo ago First seen · 165 lines · 35 tokens per session scan A 7391437c54fd
fe-test-runner is an agent published in the GitHub repository sh5623/fe-rail (1 stars, last pushed 3d ago), licensed MIT. It adds 35 tokens to every session and 1,687 once invoked, about $0.0001 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-08-31.
Other agents, from other repositories
qa-tester
The QA Tester of the aSPARK team. Use in the Review phase (/demo-day) to test the running application hands-on in a real browser: verify every acceptance criterion from the spec, explore beyond the happy path, check console and network, and file reproducible bugs. Requires a browser integration (Claude in Chrome…
e2e-failure-classifier
Use when a Playwright or Cypress test failure needs a root cause, to classify ONE failure into the F1–F15 taxonomy shared by playwright-debugger and cypress-debugger. Give it the failing test name and the report excerpt (error, stack, attempt info); it reads the spec and config, returns the F-code with confidence…
browser-tester
AI-driven browser testing agent. Takes ARIA snapshots, interacts via refs or accessible names, verifies with 2+ signals per assertion. Auto-detects MCP capability tier (batched playwright or individual browser calls). Supports spec-driven, basic, visual, and a11y modes.
consistency-qa
The brooks-lint verification gate. Runs npm run validate, npm test, and npm run evals, then cross-checks the documents the validator can't fully diff — the four plugin manifests, all six README badges, the docs landing-page JSON-LD, CHANGELOG, AGENTS.md, GEMINI.md, and the derived book count — for drift. Reports…
test-gap-finder
Finds missing, weak, or stale test coverage in a diff. Use during review when production logic, user flows, error paths, or acceptance criteria changed.
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…