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 instructions/outlmd/outl/architecturegit clone --depth 1 https://github.com/outlmd/outlWhat 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.01926 | $0.01926 |
| Opus 5 | $0.00963 | $0.00963 |
| Sonnet 5 | $0.00385 | $0.00385 |
| Haiku 4.5 | $0.00193 | $0.00193 |
Grade A, and why
outl architecture.instructions.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 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.
How it starts
The opening of the file, as written. The whole thing — 86 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Reuse-first violations — no parallel implementations
Duplication here is a real hazard: two implementations of the same logic drift apart over time, and the user is the one who hits the divergence.
Past incidents to anchor severity:
outl_md::index::Backlinkandoutl_actions::Backlinkwere two parallel "backlinks" pipelines that started identical and ended up disagreeing on self-references — caught by the user, not the reviewer. Collapsed intooutl_actions::backlinks_for_pagein 0.5.3.- PR #47 (Logseq import) opened with
crates/outl-cli/src/cmd/import/normalize.rsreimplementing\r\nhandling,id::stripping, and long-form date rewriting — every one of whichoutl_actions::paste::normalize_external_syntaxalready owned. (That directory has since been replaced by the adapter-basedcrates/outl-import; the lesson carries over.) Caught in review after a Claude-assisted PR shipped without the catalog being visible. That is why the shared primitives catalog exists (seeshared-primitives.instructions.md).
The rule the PR author was expected to follow:
- Grep before writing.
rg "fn foo"/rg "struct Foo"acrosscrates/. Look in upstream crates first, in this order:outl-core→outl-md→outl-actions. These are where shared primitives live. The catalog above is your starting point. - Prefer evolving the existing API over duplicating, even if that means a small refactor (rename, generalize a parameter, move into a sibling module). One owner per concept; many callers.
- Refactor into the shared crate, not around it.
If a TUI helper feels like it could live in
outl-actions, the PR should move it there now — the mobile client will need it soon. Theflatten_subtree_pathsmigration is the canonical pattern. - Duplication is OK only when the platforms are genuinely different.
outl-tui::EditBufferand the mobile<textarea>are both "cursor + text", but one is a terminal widget Rust has to render itself and the other is a browser primitive. Same role, different runtime — not duplication. Recalculating(line, col)fromcursorin both places, though, would be — extract tooutl_md::view::char_to_line_coland wrap.
When you spot a duplicate, point at the existing function with file:line and ask: "can you call this instead, or extend it if it doesn't quite fit?
The fix is to wrap or evolve the upstream API, never to write a parallel one.
If the author argues for duplication, they have to fit it into case 4 above — same role, genuinely different runtime.
Anything else is a blocker.
- Layering violations.
UI imports in
outl-core. Client crates building op trees instead of callingoutl-actions. Workspace mutations done outsideWorkspace::apply. - New
Opvariant without the full checklist. Adding a variant touchesapply_op,undo_op(the inverse must be exact), the sidecar serializer, the markdown projection, the replay tests, and the per-crate docs. Check the diff against/new-opexpectations and call out anything missing. - Trait surface that locks out a future backend.
Storagemust stay implementable by ChronDB later. If a new method assumes file semantics (paths, flock), question it. - Sidecar / op-log format changes without a migration story. Existing workspaces on disk must still load. Either the change is backward-compatible (new optional field) or there is a versioned migration path described in the PR.
- File size growth past 600 lines.
Note it, suggest a split by responsibility, point at
refactor-architectagent. Past 900 lines, request a refactor before merge. - Premature abstraction. A new trait or generic with one impl and no second use case in sight. The Rule of Three applies — concrete first, abstract on the third caller.
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 · 86 lines · 1,926 tokens per session scan A f07724d52939
outl architecture.instructions.md is an instructions file published in the GitHub repository outlmd/outl (161 stars, last pushed yesterday), licensed MIT. It adds 1,926 tokens to every session, about $0.0096 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-09-01.
Other instructions, from other repositories
firecrawl CLAUDE.md
Claude Code instructions for firecrawl/firecrawl: Firecrawl is a web scraper API. The directory you have access to is a monorepo.
siyuan AGENTS.md
AGENTS.md instructions for siyuan-note/siyuan, covering agents.md, 1. non-negotiable constraints, do not hand-edit, verification and prohibited operations and 2. project-specific rules.
mq commit.instructions.md
Instructions for harehare/mq: Use the following format for commit messages.
core copilot-instructions.md
Instructions for asdecided/core: These decisions are already accepted. Do not re-open or contradict them; ask the AsDecided MCP tools (getartifact, searchartifacts) for the full text before proposing a change that touches one.
kipi-system AGENTS.md
AGENTS.md instructions for assafkip/kipi-system, covering q entrepreneur os, project structure, conventions, commands and build and test.
research-os AGENTS.md
Instructions for lxinfei5/research-os, covering researchos — constitution, §0 what this is, §1 directory discipline, §2 half-life (innovation 1) — memory design and §3 behavior pillars (innovations 2–5).