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 rules/muzaffar640/commitpress/data-fetchinggit clone --depth 1 https://github.com/muzaffar640/commitpressWhat 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.00000 | $0.00488 |
| Opus 5 | $0.00000 | $0.00244 |
| Sonnet 5 | $0.00000 | $0.00098 |
| Haiku 4.5 | $0.00000 | $0.00049 |
Grade A, and why
data-fetching 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 yesterday.
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.
What it actually says
description: globs: alwaysApply: true
Data Fetching Patterns
Server Component Data Fetching
- Prefer fetching data directly in Server Components
- Use the native
fetchAPI which is automatically memoized in Next.js - Implement proper caching and revalidation strategies
// Example of data fetching in a Server Component
async function ProductPage({ params }: { params: { id: string } }) {
const product = await fetchProduct(params.id);
return <div>{product.name}</div>;
}
API Routes
- API routes should be created in the app/api directory
- Use the route.ts pattern for API handlers
- Implement proper error handling and status codes
// Example API route in app/api/products/route.ts
export async function GET(request: Request) {
try {
const products = await fetchProducts();
return Response.json(products);
} catch (error) {
return Response.json({ error: 'Failed to fetch products' }, { status: 500 });
}
}
Caching and Revalidation
- Use appropriate cache settings for fetch requests
- Implement revalidation strategies based on data requirements:
// Example with revalidation time
async function fetchData() {
const res = await fetch('https://api.example.com/data', {
next: { revalidate: 3600 } // Revalidate every hour
});
return res.json();
}
// Example with no caching for dynamic data
async function fetchDynamicData() {
const res = await fetch('https://api.example.com/dynamic-data', {
cache: 'no-store'
});
return res.json();
}
Error Handling
- Implement robust error handling for data fetching
- Use try/catch blocks to handle errors
- Create appropriate error UI with error.tsx files
Parallel Data Fetching
- Use Promise.all for parallel data fetching when appropriate:
async function ParallelFetchExample() {
const [data1, data2] = await Promise.all([
fetchFirstDataSource(),
fetchSecondDataSource()
]);
return <Component data1={data1} data2={data2} />;
}
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.
- yesterday First seen · 87 lines · 0 tokens per session scan A f0b5a80ea895
data-fetching is a cursor rule published in the GitHub repository muzaffar640/commitpress (7 stars, last pushed 1y ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 488 tokens. 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 cursor rules, from other repositories
project-structure
Overall project structure & standards.
utilities
Project utilities & helper functions for use across the project.
ui-components
Cursor rule "ui-components" from FluroAsh/nextjs-mdx-portfolio, covering ui components and styling, component libraries, shadcn/ui, custom components and styling approach.
testing
Testing standards & Practices.
accessibility
Accessibility standards.
avoid-nested-code-blocks
See README.md for more details. description: globs: alwaysApply: false.