Borrowing it
Nothing to install: this file belongs to outlmd/outl. 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/outlmd/outl/main/.github/instructions/architecture.instructions.mdgit clone --depth 1 https://github.com/outlmd/outlWrote 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/outlmd/outl/architecture)<a href="https://agentmods.dev/instructions/outlmd/outl/architecture"><img src="https://agentmods.dev/badge/instructions/outlmd/outl/architecture/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/outlmd/outl/architecture"><img src="https://agentmods.dev/badge/instructions/outlmd/outl/architecture.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.01926 | $0.01926 |
| Opus 5.5 | $0.00770 | $0.00770 |
| Sonnet 5.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 1mo 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 — 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.
- 1mo ago 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 (222 stars, last pushed yesterday), licensed MIT. It adds 1,926 tokens to every session, about $0.0077 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-09-01.
Other instructions, from other repositories
vscode buildNext.instructions.md
Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).
next.js AGENTS.md
AGENTS.md instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.
vscode oss-third-party-notices.instructions.md
Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, cache eligibility and rollout and applying the notice (cutover).
langchain AGENTS.md
AGENTS.md instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.
vscode copilot-instructions.md
Copilot instructions for microsoft/vscode, covering vs code copilot instructions, project overview, root folders, core architecture (src/ folder) and built-in extensions (extensions/ folder).
deepseek-harness AGENTS.md
AGENTS.md instructions for deepseek-ai/deepseek-harness, covering agents.md, pre-stable apis and released session data, repository layout, commands and host sandbox failures.