darto AGENTS.md

Project instructions for Darto, a type-safe web framework written in Dart, plus its related packages and examples in one repository.

In plain words
What is it for?
Use them when adding routes, validation, middleware, projects, or other changes in the Darto codebase.
Why use it?
They explain conventions an agent may not infer, including that Darto handlers use one Context object instead of the older request-and-response style.

Instructions file for CodexOpenCode

Install

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.

agentmods
npx agentmods add instructions/evandersondev/darto/agents-md
Clone the repo
git clone --depth 1 https://github.com/evandersondev/darto

Made for: Codex, OpenCode.

Per session 1,905 This file is loaded in full into every session.
When invoked 1,905 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.01905 $0.01905
Opus 5 $0.00953 $0.00953
Sonnet 5 $0.00381 $0.00381
Haiku 4.5 $0.00191 $0.00191

Measured 2d ago against content hash 5809d6196813, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

darto 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 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.

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.

AGENTS.md · 162 lines

How it starts

The opening of the file, as written. The whole thing — 162 lines — stays where its author put it; the contents beside it link to each section on GitHub.

AGENTS.md

Guidance for AI coding agents working in this repository. For end-user API docs see darto/REFERENCE.md and https://darto-docs.vercel.app/.

For task-scoped procedures (add a route, validate a request, write middleware, scaffold a project), load the matching Claude Skill in skills/. Machine-readable docs for the site live at /llms.txt.

Overview

Darto is a minimal, type-safe web framework for pure Dart (no Flutter, no Node/JS). It is inspired by Express but its actual programming model is Hono-style: everything flows through a single Context object. This repo is a monorepo — the core darto package plus an ecosystem of plugins (darto_*) and runnable examples/.

The #1 thing to get right: Context, not (req, res, next)

Darto's lineage is Express, but as of v1.x the API is not Express. Do not write (Request req, Response res, Next next) handlers, res.send(), or Express-style error middleware — that is the old API and will not compile.

A handler takes a single Context c and returns a Response:

import 'package:darto/darto.dart';

void main() {
  final app = Darto();

  app.get('/users/:id', [], (Context c) {
    final id = c.req.param('id');   // read request via c.req
    return c.ok({'id': id});        // RETURN a response helper
  });

  app.listen(3000);
}

The three typedefs that define the whole framework:

typedef Handler    = FutureOr<Response>? Function(Context c);
typedef Middleware = FutureOr<void>      Function(Context c, Next next);
typedef Next       = Future<void>        Function();

Conventions an agent won't infer

  • Middleware list is a required positional arg on every verb method. Pass [] when there is no route-level middleware: app.get(path, [middlewares], handler). Never omit it.
  • Return responses, don't "send" them. Use the helpers and return them: c.ok, c.created, c.noContent, c.badRequest, c.unauthorized, c.forbidden, c.notFound, c.conflict, c.internalError, or typed c.json(data, [status]), c.text, c.html, c.redirect, c.binary, await c.file(...), await c.download(...). Chain status with c.status(206).json(...).
  • c.body(...) is a response helper (raw body), not a request reader.
  • Read the request through c.req: c.req.param('id') / paramInt, c.req.query('page') / queryInt / queryBool, c.req.header('...'), and the body via await c.req.json() (or c.req.json<T>(T.fromJson)), c.req.text(), c.req.blob().
  • Per-request state: c.set('k', v) / c.get<T>('k'); auth shortcut c.user.
  • Writing middleware: factory returning a closure; await next() to continue, return (without next) to short-circuit:
    Middleware requireAdmin() => (Context c, Next next) async {
      if (c.user?['role'] != 'admin') { c.forbidden(); return; }
      await next();
    };
    
  • Error & 404 handling use Context too — not Express error middleware:
    app.onError((DartoError err, Context c) => c.internalError({'error': err.message}));
    app.notFound((Context c) => c.notFound({'error': 'not found'}));
    
  • Validation is zValidator from darto_validator (Zod-style via zard), used as route middleware; read the result with c.req.valid<Map<String, dynamic>>('json' | 'query' | 'param').
  • There is no built-in ORM/database layer. Don't introduce or assume one (e.g. "Dartonic") — persistence is left to the application.

Read the full file on GitHub · 162 lines

Changes

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.

  1. 2d ago First seen · 162 lines · 1,905 tokens per session scan A 5809d6196813

Subscribe to this mod's changes

darto AGENTS.md is an instructions file published in the GitHub repository evandersondev/darto (43 stars, last pushed 1mo ago), licensed MIT. It adds 1,905 tokens to every session, about $0.0095 per session on Opus 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.

Related

Other instructions, from other repositories

igniter-js GEMINI.md

Gemini CLI instructions for felipebarcelospro/igniter-js, covering 1. identity and profile, 2. about the igniter.js monorepo, 3. personality and communication, 4. lia's core responsibilities (the 4 pillars) and 5. technical guidelines and methodology.

felipebarcelospro/igniter-js · 9,239 tokens

igniter-js AGENTS.md

AGENTS.md instructions for felipebarcelospro/igniter-js, covering lia - ai agent for igniter.js, 1. identity & mission, core mission, key responsibilities and 2. project overview.

felipebarcelospro/igniter-js · 6,319 tokens

igniter-js writing-style.instructions.md

Instructions for felipebarcelospro/igniter-js, covering ✍️ unified documentation style guide (for llms & authors), 🎯 core style principles (applies to all documentation), 📘 documentation (docs): writing style, installation and quick start.

felipebarcelospro/igniter-js · 3,722 tokens

igniter-js writing-guidelines.instructions.md

Instructions for felipebarcelospro/igniter-js, covering writing guidelines for humans and llms, core style principles, fumadocs-specific guidelines, available mdx components and component usage examples.

felipebarcelospro/igniter-js · 6,725 tokens

wa-automate-nodejs AGENTS.md

AGENTS.md instructions for open-wa/wa-automate-nodejs, covering repository instructions, commit policy, no ai attribution, commit grouping and gitmoji reference.

open-wa/wa-automate-nodejs · 1,586 tokens

keryx CLAUDE.md

Instructions for actionhero/keryx, covering claude.md, project overview, monorepo structure, development environment and environment setup.

actionhero/keryx · 2,225 tokens