Mode d’emploi
- Copiez la commande et examinez le paquet avant de l’installer dans votre environnement agent.
- Consultez le document original pour les outils, identifiants et environnements requis.
- Décrivez les entrées et le livrable souhaité ; comparez la sortie aux sources.
npx skills add https://github.com/rasengan-dev/agent-skills --skill rasengan-optimizingAvant de commencer
- L’installation n’inclut ni abonnement au modèle, ni quota API, ni accès aux fichiers.
- Étoiles et installations reflètent l’activité, pas un test indépendant de qualité ou de sécurité.
Rendu depuis le dépôt source en conservant titres, exemples, code, tableaux, liens et images.
Rasengan.js Optimization Patterns
When to Activate
- Serving static files (images, fonts, icons) from the
public/directory - Referencing assets in components or templates
- Optimizing images and static resources for production
- Configuring metadata for SEO (title, description, Open Graph, Twitter)
- Enabling React Compiler via Sage Mode for automatic memoization
Static Assets — public/ Directory
Any file placed inside the public/ directory is automatically served at the base URL (/). No imports or special loaders needed.
File Placement
public/
├── favicon.ico
├── robots.txt
├── og-image.png
└── avatars/
└── 1.pngReferencing in Code
// Public assets use root-relative paths
<img src="/avatars/1.png" alt="Avatar" />
// With @rasenganjs/image
import { Image } from '@rasenganjs/image';
<Image src="/avatars/1.png" alt="Avatar" width={64} height={64} />// In the HTML template (src/template.tsx)
import { type TemplateProps } from 'rasengan';
export default function Template({ Head, Body, Script }: TemplateProps) {
return (
<html lang="en">
<Head>
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
</Head>
<Body><Script /></Body>
</html>
);
}src/assets/ Directory
For assets that need bundling, transformation, or import-based references, use src/assets/ instead:
import logo from '@/assets/logo.svg';
function Header() {
return <img src={logo} alt="Logo" />;
}Metadata & SEO
SEO metadata is defined as a static property on page or layout components:
Home.metadata = {
title: 'Home',
description: 'Home page description',
openGraph: {
title: 'Home',
description: 'Home page',
url: 'https://example.com',
image: 'https://example.com/og.png',
},
twitter: {
card: 'summary_large_image',
image: 'https://example.com/twitter.png',
title: 'Home',
},
};Rules:
- Page metadata takes priority over layout metadata (merged, page wins)
- Loader-returned
metaoverrides static metadata at runtime openGraph.urlandopenGraph.imageare required when using Open Graphtwitter.card,twitter.image,twitter.titleare required when using Twitter cards
React Compiler (Sage Mode)
Enable automatic memoization in rasengan.config.js:
export default defineConfig({
sageMode: {
reactCompiler: true, // auto-memoize all components
// reactCompiler: { compilationMode: 'annotation' }, // only components with "use memo"
},
});true— applies React Compiler to all components automatically{ compilationMode: 'annotation' }— only compiles components with a"use memo"directive
Bundle Optimization
Build output structure:
dist/
client/ # Client bundle + manifest.json
assets/ # JS, CSS, config.json
.vite/ # Vite manifest
server/ # SSR server bundle
static/ # Pre-rendered HTML (SSG)Rules
- Use
public/for assets that need a fixed URL path (favicon, robots.txt, og-images) - Use
src/assets/for assets that benefit from bundling, hashing, and import references - Always provide
widthandheighton images to prevent Cumulative Layout Shift (CLS) - Place SEO-critical images (Open Graph, Twitter cards) in
public/for stable URLs - Enable
sageMode.reactCompilerto reduce unnecessary re-renders in production - The
public/directory contents are copied as-is during build (no transformation)


