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/tuchg/lucarne/agents-mdgit clone --depth 1 https://github.com/tuchg/LucarneWrote 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/tuchg/lucarne/agents-md)<a href="https://agentmods.dev/instructions/tuchg/lucarne/agents-md"><img src="https://agentmods.dev/badge/instructions/tuchg/lucarne/agents-md.svg" alt="Measured on agentmods" 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 | $0.01090 | $0.01090 |
| Opus 5 | $0.00545 | $0.00545 |
| Sonnet 5 | $0.00218 | $0.00218 |
| Haiku 4.5 | $0.00109 | $0.00109 |
Grade A, and why
Lucarne 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 5d 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 — 89 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Agent Instructions
Provider Responsibility Boundary
Provider-specific responsibility must stay inside provider-owned modules, descriptors, traits, or associated constants. Do not move provider ids, cursor prefixes, transcript parsing rules, discovery details, file format quirks, or resume semantics into public/common layers as ad hoc branching or literals.
Common layers may orchestrate through typed provider contracts only. If a change needs provider-specific behavior, add it to the provider contract and implement it at the provider boundary instead of teaching the common layer about that provider.
Development and Testing
During development and testing, use Rust nightly with the new build directory layout for Cargo commands.
Required pattern:
cargo +nightly <command> -Zbuild-dir-new-layout
Examples:
cargo +nightly check -Zbuild-dir-new-layout
cargo +nightly test -Zbuild-dir-new-layout
cargo +nightly clippy -Zbuild-dir-new-layout --all-targets --all-features
Release Process
Do not create GitHub Releases manually.
Release flow:
- Bump workspace version in
Cargo.toml. - Regenerate/update
Cargo.lockonly for workspace package version changes. - Run verification:
cargo +nightly test -Zbuild-dir-new-layout --locked --workspace --all-features -- --quiet - Commit version bump.
- Push
main. - Create and push annotated tag, for example:
git tag -a v0.2.2 -m "v0.2.2"git push origin v0.2.2 - Let GitHub Actions create the release, upload assets, and update the Homebrew formula.
Never run gh release create manually before the release workflow finishes. The workflow refuses to overwrite an existing release.
If a blank release was created by mistake:
- Delete the GitHub Release only; keep the git tag.
- Rerun the failed release workflow for the same tag.
Provider Boundaries
Provider responsibility must not be moved into public/common/core layers.
- Public/common/core layers may route opaque provider ids, but must not own provider id catalogs, provider-specific cursor formats, parsing rules, discovery rules, resume semantics, media visibility rules, or compatibility fallbacks.
- Provider-specific behavior belongs in the provider module, provider descriptor, or provider trait implementation.
agent-sessionsis the provider layer. It owns parse, discovery/find, watch, and provider descriptors. It must not own history orchestration, history cursors, history pagination, or history indexes.lucarne::historyis the history application layer. It may consumeagent-sessionsprovider descriptors and generic provider capabilities, but it must not mention or special-case concrete providers such as Codex, Claude, Gemini, Copilot, or Pi.- Watch integration must be descriptor/trait driven. Do not add a public/common provider enum or a common watch match table when adding a provider; extend the provider descriptor/trait and implement the behavior inside that provider.
- Runtime/core provider ids are opaque provider contracts. Public/common layers must not keep a concrete provider-id catalog or deserialize by provider-name whitelist.
- Only provider identity is a static provider contract. Dynamic runtime metadata such as labels, display names, and binary paths must stay owned data (
String/SmolStr), neverBox::leak-promoted&'static str. - History code should be split by responsibility (
provider,transcript, indexing/orchestration) instead of accumulating unrelated concerns in one file. - Hot paths must use bounded reads/windows. They must not scan or read whole session files to serve history, watch, metadata, transcript, or title requests.
- Starting history watch requires at least one core event subscriber. Do not parse provider history updates into a broadcast channel with zero receivers.
- This refactor does not require old compatibility. Prefer rejecting obsolete cursor/API formats or returning absence over introducing fallback work in shared layers.
agent-sessionsparsed provider structs should expose only data consumed by descriptor, parse, discovery, or watch contracts. Do not keep unused convenience getters, raw provider fields, or generic project aggregation APIs as speculative compatibility.- Do not reintroduce a generic raw parser bridge such as
ProviderParser -> ProviderParsed<Body>. Provider descriptors must enter through semantic byte parsing, discovery metadata parsing, or watch parsing; provider-private helpers may exist only as implementation details below that boundary. - Provider and watch helpers must compile in
--no-default-featuressingle-provider matrices. Do not rely on--all-featuresto hide unused imports, dead helpers, or tests that only compile when unrelated providers are enabled.
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.
- 5d ago First seen · 89 lines · 1,090 tokens per session scan A 40d011d3bb67
Lucarne AGENTS.md is an instructions file published in the GitHub repository tuchg/Lucarne (334 stars, last pushed 1mo ago), licensed MIT. It adds 1,090 tokens to every session, about $0.0054 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.
Other instructions, from other repositories
TelePi AGENTS.md
Instructions for benedict2310/TelePi, covering repository guidelines, project structure & module organization, build, test, and development commands, operational commands and coding style & naming conventions.
botmux CLAUDE.md
Claude Code instructions for deepcoldy/botmux, covering botmux, 构建 & 运行, bun 开发链路, worktree 的 nodemodules:共享还是独立(改前必读) and 编译态(单文件二进制)注意.
SearChat CLAUDE.md
Claude Code instructions for yokingma/SearChat, covering claude.md, project overview, architecture, monorepo structure and key technologies.
InvestSkill GEMINI.md
Gemini CLI instructions for yennanliu/InvestSkill, covering investskill — gemini cli setup & usage guide, installation & setup, quick start, navigate to the investskill directory and start gemini cli (loads gemini.md automatically).
aisix CLAUDE.md
Claude Code instructions for api7/aisix, covering claude.md, 1. think before coding, 2. simplicity first, 3. surgical changes and 4. goal-driven execution.
DevoxxGenieIDEAPlugin GEMINI.md
Instructions for devoxx/DevoxxGenieIDEAPlugin, a project described as: DevoxxGenie is an agentic plugin for IntelliJ IDEA that uses local LLM's (Ollama, LMStudio, GPT4All, Jan and Llama.cpp) and Cloud based LLMs to help review, test, explain your project code. Latest version now also supports Spec Driven Development…