Satūs is a Next.js starter template for building content-driven websites with React, Tailwind CSS, TypeScript, and optional integrations such as WebGL, Sanity, Shopify, HubSpot, and Mailchimp. Developers use it as a starting point for creating and deploying sites, while the catalogue add-ons provide project-specific coding guidance and workflows.
Borrowing it
Nothing to install: this file belongs to darkroomengineering/satus. 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/darkroomengineering/satus/main/AGENTS.mdgit clone --depth 1 https://github.com/darkroomengineering/satusWrote 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/instructions/darkroomengineering/satus/agents-md)<a href="https://agentmods.dev/instructions/darkroomengineering/satus/agents-md"><img src="https://agentmods.dev/badge/instructions/darkroomengineering/satus/agents-md/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/instructions/darkroomengineering/satus/agents-md"><img src="https://agentmods.dev/badge/instructions/darkroomengineering/satus/agents-md.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.07165 | $0.07165 |
| Opus 5.5 | $0.02866 | $0.02866 |
| Sonnet 5.5 | $0.01433 | $0.01433 |
| Haiku 4.5 | $0.00717 | $0.00717 |
Grade A, and why
satus AGENTS.md 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 — 309 lines — stays where its author put it; the contents beside it link to each section on GitHub.
AGENTS.md - Satus Engineering Standards
This is the single source of truth for engineering standards in this repo. Claude Code, Codex, Cursor, and other AI tools read this file. .cursor/rules/ points here. Do not add a CLAUDE.md: while one exists, Claude Code skips loading this file.
This file changes only by deliberate review. When next dev detects an AI coding agent it appends a managed block here (an HTML comment fencing nextjs-agent-rules); agentRules: false in next.config.ts stops that. Keep it off. If the block appears, revert it and do not commit it. Do not include its opening marker in prose: Next searches for that exact string, and a match truncates everything below it on the next next dev run.
Stack
| Layer | Technology |
|---|---|
| Framework | Next.js 16 (App Router, proxy.ts) |
| UI | React 19.3 (React Compiler ON, no manual memoization) |
| Language | TypeScript 7, strict: true |
| Styling | Tailwind v4 (CSS-first) + CSS Modules |
| Runtime | Bun |
| Linter / Formatter | oxlint + oxfmt |
| Validation | Zod |
| Animation | Lenis, anime.js, Tempus |
| 3D (optional) | React Three Fiber, @react-three/drei |
Enforced Rules (CI fails without these)
bun run check and CI enforce these rules; the pre-commit hook runs oxlint and tsc. Type-aware rules run only in lint:types, check, and CI because next build does not typecheck (ignoreBuildErrors is on).
oxlint rules
| Rule | What it catches | Enforcer |
|---|---|---|
typescript/no-explicit-any |
any types |
oxlint typescript |
typescript/consistent-type-imports |
Missing import type for type-only imports |
oxlint typescript (.ts/.tsx) |
typescript/consistent-type-exports |
Missing export type for type-only re-exports |
oxlint typescript, type-aware |
nextjs/no-img-element |
Raw <img> tags; use @/components/ui/image for optimization and WebGL integration |
oxlint nextjs |
react/forbid-elements |
Raw <a> tags; use @/components/ui/link for external detection, prefetching and consistent behavior |
oxlint react |
eslint/no-restricted-imports |
../../ imports (use @/ aliases), forwardRef (React 19 ref-as-prop), useMemo/useCallback/memo (React Compiler), hamo useMediaQuery (use useDeviceDetection or desktop-only/mobile-only markup), next/image (use @/components/ui/image) |
oxlint eslint |
hamo/no-raw-layout-read |
getBoundingClientRect, offset*/client*/scroll* sizes, window.scrollY, getComputedStyle and other forced-layout reads; use hamo useRect, useWindowSize, useResizeObserver, or lenis.scroll because raw reads force layout on every scroll/frame |
tools/oxlint/hamo |
hamo/no-raw-observer |
new ResizeObserver/IntersectionObserver, matchMedia, window resize/scroll listeners; use hamo, useDeviceDetection, or Lenis |
tools/oxlint/hamo |
styling/no-class-string-variable |
Tailwind class lists stored in variables, cn() results, variant maps, or helper returns; write them in className, extract a component, or use the CSS module because stored lists travel across files and skip oxfmt sorting and IntelliSense |
tools/oxlint/styling |
eslint/no-unused-vars |
Unused imports, variables and parameters | oxlint eslint |
react/jsx-key |
Missing key in list renders |
oxlint react (.tsx/.jsx) |
jsx-a11y/alt-text |
Images without alt text |
oxlint jsx-a11y |
react/button-has-type |
<button> without type |
oxlint react |
react/no-danger-with-children |
XSS risk | oxlint react |
import/first |
Imports outside the top of a file | oxlint import |
react/rules-of-hooks |
Hooks called conditionally or outside components | oxlint react |
typescript/no-floating-promises |
Un-awaited promises | oxlint typescript, type-aware |
typescript/no-misused-promises |
Async functions passed where void is expected | oxlint typescript, type-aware |
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 Changed · +10 tokens per session 57f496da6274
- 14d ago Changed · -90 lines · -1,621 tokens per session b101349afd68
- 15d ago Changed · +1 lines · +192 tokens per session 4047d5e9839a
- 18d ago Changed · +1 lines · +133 tokens per session 4e0ea81279c7
- 22d ago Changed · +2 lines · +207 tokens per session 8c7548155e7d
- 25d ago Changed · +6 lines · +492 tokens per session e67688549dda
- 28d ago Changed · +1 lines · +124 tokens per session 4f0b85505327
- 29d ago Changed · +7 lines · +491 tokens per session fe9b4f3cd2b5
- 1mo ago Changed · -13 tokens per session e747364e612a
- 1mo ago First seen · 381 lines · 7,150 tokens per session scan A 41dfefc6bee3
satus AGENTS.md is an instructions file published in the GitHub repository darkroomengineering/satus (1,013 stars, last pushed 2d ago), licensed MIT. It adds 7,165 tokens to every session, about $0.0287 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.
satus AGENTS.md compared with instructions from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| satus AGENTS.mddarkroomengineering/satus | Instructions file | 1.0k | 2d ago | MIT | A | 7,165 | Codex, OpenCode |
| vscode buildNext.instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 9,719 | GitHub Copilot |
| next.js AGENTS.mdvercel/next.js | Instructions file | 143k | today | MIT | A | 7,461 | Codex, OpenCode |
| langchain AGENTS.mdlangchain-ai/langchain | Instructions file | 149k | yesterday | MIT | A | 4,680 | Codex, OpenCode |
| vscode oss-third-party-notices.instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 5,516 | GitHub Copilot |
| vscode copilot-instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 3,093 | GitHub Copilot |
| deepseek-harness AGENTS.mddeepseek-ai/deepseek-harness | Instructions file | 274k | 2d ago | MIT | A | 4,313 | Codex, OpenCode |