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.
npx agentmods add skills/plazmodium/odin-workflow/nextjs-devnpx skills add Plazmodium/odin-workflow --skill nextjs-devgit clone --depth 1 https://github.com/Plazmodium/odin-workflowWhat 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 | $0.00025 | $0.03748 |
| Opus 5 | $0.00013 | $0.01874 |
| Sonnet 5 | $0.00005 | $0.00750 |
| Haiku 4.5 | $0.00003 | $0.00375 |
Grade A, and why
nextjs-dev scanned grade A with 1 finding 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 2d 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.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
fetch(input, { ...init, cache: 'no-store' }), How it starts
The opening of the file, as written. The whole thing — 471 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Next.js Development
Overview
Next.js 14+ with App Router provides Server Components by default, Server Actions for mutations, and streaming for progressive rendering. Next.js 16 introduces Cache Components (use cache directive) and makes request-bound APIs async. Prefer the App Router for all new projects.
Project Structure
app/
├── layout.tsx # Root layout (wraps all pages)
├── page.tsx # Home page (Server Component by default)
├── error.tsx # Error boundary ('use client' required)
├── not-found.tsx # 404 page
├── loading.tsx # Loading skeleton (shown during streaming)
├── globals.css # Global styles
├── (admin)/ # Route group (no URL segment)
│ └── dashboard/
├── _internal/ # Private folder (opted out of routing)
├── features/
│ └── [id]/
│ └── page.tsx # Dynamic route
└── api/
└── route.ts # API route handler
components/
├── ui/ # Primitives (button, card, etc.)
├── layout/ # Sidebar, header, footer
└── shared/ # Reusable across pages
lib/
├── data/ # Server-side data fetching functions
├── actions/ # Server Actions ('use server')
├── types/ # TypeScript interfaces
└── utils.ts # Formatting helpers
Route Groups: Use parentheses (e.g., (admin)) to group routes without affecting the URL path.
Private Folders: Prefix with _ (e.g., _internal) to opt out of routing and signal implementation details.
Feature Folders: For large apps, group by feature (e.g., app/dashboard/, app/auth/).
Core Patterns
Server Components (default)
// app/page.tsx — Server Component (no 'use client' directive)
export const dynamic = 'force-dynamic'; // Required when fetching from DB
import { getData } from '@/lib/data/my-data';
export default async function Page() {
const data = await getData(); // Runs on server only
return <div>{data.title}</div>;
}
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.
- 2d ago First seen · 471 lines · 25 tokens per session scan A 90f1dd8355e8
nextjs-dev is a skill published in the GitHub repository Plazmodium/odin-workflow (0 stars, last pushed 3mo ago), licensed MIT. It adds 25 tokens to every session and 3,748 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-01.
Other skills, from other repositories
b123d-modeling
Use this skill when asked to model, build, or modify a 3D part or assembly with build123d — from a text description, a technical drawing (image or PDF), dimensions in a spec, or an existing STEP/STL file.
testing-react
Writes React/TypeScript tests using Vitest and React Testing Library. Use when "write react tests", "vitest", "component test", "hook test", "RTL", "testing library", "snapshot test", or testing React components, hooks, and utilities.
b123d-drawing
../../../src/build123dmcp/skills/b123d-drawing/SKILL.md.
react-component-design
Designs or reviews React component APIs. Handles prop drilling decisions, composition patterns, controlled/uncontrolled contracts, and minimal public API surfaces for React 18+ TypeScript components. Invoked when creating new components, refactoring existing ones, or reviewing component contracts.
hmem-curate
Curate an .hmem file (your own or foreign) — mark obsolete/irrelevant, fix titles, consolidate duplicates, repair broken links. Requires the hmem-curate MCP server (skill prompts the user to enable it on entry). Use whenever the user says 'aufräumen', 'memory aufräumen', 'Speicher aufräumen', 'hmem aufräumen', 'clean…
mlflow-traces
Use when working with MLflow traces: debugging via MCP tools, analyzing performance, logging feedback, writing custom scorers/evaluations, or cleaning up trace data.