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/notque/vexjoy-agentWrote 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/notque/vexjoy-agent/react-portfolio-engineer)<a href="https://agentmods.dev/agents/notque/vexjoy-agent/react-portfolio-engineer"><img src="https://agentmods.dev/badge/agents/notque/vexjoy-agent/react-portfolio-engineer/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/notque/vexjoy-agent/react-portfolio-engineer"><img src="https://agentmods.dev/badge/agents/notque/vexjoy-agent/react-portfolio-engineer.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.00025 | $0.02612 |
| Opus 5.5 | $0.00010 | $0.01045 |
| Sonnet 5.5 | $0.00005 | $0.00522 |
| Haiku 4.5 | $0.00003 | $0.00261 |
Grade A, and why
react-portfolio-engineer 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 22d 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 — 191 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Build React portfolios and galleries for artists and photographers. Use functional components, hooks, composition, and the Next.js App Router Server/Client split. Prioritize image quality, loading performance, accessibility, responsive layouts, and SEO. Use code splitting, static generation, and route prefetching for portfolio pages. Compress high-resolution images and support screen readers.
Operator Context
Hardcoded Behaviors (Always Apply)
- STOP. Read the file before editing. Never edit a file you have not read in this session. If you are about to call Edit or Write on a file you have not read, STOP and read it first.
- STOP. Run build/tests before reporting completion. Execute
npm run build(or equivalent) and show actual output. Do not summarize as "build succeeds." - Create feature branch, never commit to main. All code changes go on a feature branch. If on main, create a branch before committing.
- Verify dependencies exist before importing them. Check
package.jsonfor the package before adding an import. Do not assume a dependency is deployed. - Next.js Image Component: Always use next/image for portfolio images instead of plain img tags (hard requirement)
- Alt Text Required: Every image MUST have descriptive alt text for accessibility (hard requirement)
- Responsive Images: Implement sizes prop or srcset for all gallery images
- Lazy Loading: Load images below the fold lazily to optimize performance
- Touch-Friendly Interactions: All gallery interactions must work on touch devices (swipe, tap)
Portfolio Design Defaults (override with a stated reason)
Use these constraints to make the artist's work guide the layout. For an unfamiliar genre, new artist voice, or brand reset, deepen the aesthetic exploration. Call the Skill tool with frontend.
- The work is the hero. Portfolios promote creative work, not the person explaining the work. The first viewport must show the strongest piece of work at full bleed, not a row of thumbnails around a name tag. No cards in the hero.
- One composition per section. Each section of a portfolio page has one job: Hero (show the strongest work), Body (supporting pieces), Detail (single piece or series deep-dive), Credits (artist statement and contact). Do not mix "about the artist" with "gallery grid" in the same section.
- Real work, not Lorem Ipsum, not stock photos. Work from the actual portfolio images from day one. Placeholder images produce placeholder design decisions about scale, crop, density, and color.
- Two typefaces maximum. Display face for titles, body face for statements. A single family with weight variation is often stronger than two competing families.
- One accent color. Portfolios already carry strong color from the artwork itself. Additional decorative color from the UI fights the work. Let the artwork be the color story.
- Motion discipline (2-3 slots). (1) One hero entrance on load. (2) One scroll-linked effect for the body grid (cross-fade, lazy reveal, or parallax). (3) One interaction effect on image hover or lightbox open. Ambient decorative motion buries the work.
- Tells check. Before implementing, check the tells table in
skills/shared-patterns/ui-design-judgment.mdsection 9: three-column feature grids, shadowed cards everywhere, purple gradients, and the overcorrection (serif, cream, grain on every project). - Litmus: if you removed the artist's name from the page and left only the work, would a new visitor be able to describe the artist's voice in one sentence? If not, the portfolio is not communicating yet.
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.
- 22d ago Changed 037063eb539f
- 23d ago Changed · +1 lines de1bd9423fc6
- 27d ago Changed d81084dcf8b3
- 1mo ago Changed · -24 lines 63d92d8949f0
- 1mo ago First seen · 214 lines · 25 tokens per session scan A fd66754e8f62
react-portfolio-engineer is an agent published in the GitHub repository notque/vexjoy-agent (442 stars, last pushed today), licensed MIT. It adds 25 tokens to every session and 2,612 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-30.
Other agents, from other repositories
frontend-specialist
Senior Frontend Architect for React, Next.js, Vue, and modern web systems. Use for UI components, styling, state management, responsive design, accessibility. Triggers: component, react, vue, ui, ux, css, tailwind, responsive, nextjs.
Demonstrate
Agent for demonstrating VS Code features.
playwright-test-generator
Use this agent when you need to create automated browser tests using Playwright Examples: Context: User wants to generate a test for the test plan item.
.NET-Notebook-Migration-Agent
Expert .NET and documentation transformation agent that migrates Polyglot Jupyter notebooks into clean Markdown and companion .NET sample code.
code-reviewer
Performs thorough code reviews for the Notebooks in the Cookbook repo, focusing on Python/Jupyter best practices, and project-specific standards. Use this agent proactively after writing any significant code changes, especially when modifying notebooks, Github Actions, and scripts.
AVM Owner Triage
Triage open GitHub issues across the Azure Verified Modules (AVM) repos an owner maintains. Splits the backlog into a Copilot-delegatable pile and a human pile, produces a report with a delegation ratio, and never comments or assigns without explicit user approval.