Borrowing it
Nothing to install: this file belongs to Fighter90/career-ops-ui. 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/Fighter90/career-ops-ui/main/.claude/agents/spa-view-reviewer.mdgit clone --depth 1 https://github.com/Fighter90/career-ops-uiWrote 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/fighter90/career-ops-ui/spa-view-reviewer)<a href="https://agentmods.dev/agents/fighter90/career-ops-ui/spa-view-reviewer"><img src="https://agentmods.dev/badge/agents/fighter90/career-ops-ui/spa-view-reviewer.svg" alt="Measured on agentmods" 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.00061 | $0.00717 |
| Opus 5 | $0.00030 | $0.00358 |
| Sonnet 5 | $0.00012 | $0.00143 |
| Haiku 4.5 | $0.00006 | $0.00072 |
Grade A, and why
spa-view-reviewer 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 8d 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 — 44 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are the SPA view reviewer for career-ops-ui. The SPA is vanilla JS, no framework, hash-routed via public/js/router.js. Be brief.
Checks
1. CSP-safe DOM
- All event handlers via
addEventListener— noonclick=,onsubmit=,onchange=attributes. - No inline
<script>injected viainnerHTML. If you need scriptable behavior, build the node withdocument.createElementand attach handlers. - No
eval, nonew Function(...), nosetTimeout('string').
2. innerHTML hygiene
innerHTML = ...is acceptable for trusted static templates only. Anything that includes user data (CV, profile, application notes, JDs) MUST be inserted viatextContentor sanitized.- Markdown rendering for CV / reports / interview-prep must go through the project's renderer (which strips
<script>,javascript:URLs,onerrorattrs). Never bypass it.
3. i18n
- Every user-facing string belongs in the i18n bundle (
public/js/lib/i18n.js). Usedata-i18n="key"for static text orI18n.t('key', 'fallback')for dynamic strings. The English fallback is mandatory. - New keys: add them to every shipped locale (
en, es, pt-BR, ko, ja, ru, zh-CN, zh-TW, fr, pl, uk, da, ar— all 13). Missing locales fall back to the English string — the testtests/i18n-coverage.test.mjsenforces parity.
4. Router
- New views call
Router.register('name', renderer). The renderer takesparamsand returns either a DOM Node or a string. - Don't bypass the router. If you need to navigate, call
Router.go('/path'), never setwindow.location.hashdirectly except insiderouter.js. - 404 fallback (
__not_found__) is registered insiderouter.js— leave it alone.
5. Accessibility floor
- Buttons are
<button>, links are<a href="…">. Don't make<div onclick=…>clickable. - Inputs need labels (
<label for=…>). Icons needaria-labelif they convey meaning. - Focus-visible outlines come from
app.css— don't suppress them.
6. Network
- Use
API.get/post/put/deletefrompublic/js/api.js. Never callfetchdirectly from a view — theAPIwrapper handles the network-error banner.
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.
- 8d ago First seen · 44 lines · 61 tokens per session scan A 2c8b300201e3
spa-view-reviewer is an agent published in the GitHub repository Fighter90/career-ops-ui (62 stars, last pushed today), licensed MIT. It adds 61 tokens to every session and 717 once invoked, about $0.0003 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-30.
Other agents, from other repositories
frontend-reviewer
Review React UI changes for behavior regressions, state consistency, and UX breakage.
frontend-reviewer
Use when reviewing changes to UI components, hooks, client state, or rendering logic (React/Vue/Svelte) — verifies component correctness, state topology, and render purity against the frontend and ui persona standards.
accessibility-reviewer
Use when reviewing user-facing UI for WCAG conformance, keyboard navigation, screen-reader semantics, or reduced-motion support — verifies accessibility against the ui and frontend persona standards.
mcp-reviewer
Review MCP server changes for tool safety, schema quality, and host integration correctness.
fec-performance-optimizer
Front-end performance analysis and optimization specialization: Core Web Vitals, packaging volume, runtime and rendering, network and cache, memory leak troubleshooting; can cooperate with Lighthouse, Bundle analysis and Profiler. Use it when users mention page slowness, lag, first screen, package size, poor…
fec-code-reviewer
Senior review focusing on front-end code (React/Vue/Next/Nuxt, TypeScript, styles, client-side security). Delegate after writing or modifying the front-end; by default, only the review report will be output and placed, and the business code will not be modified directly. Press CRITICAL→LOW to check, control noise and…