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 agents/mishahanin/heading-os/crm-readergit clone --depth 1 https://github.com/mishahanin/heading-osWrote 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/agents/mishahanin/heading-os/crm-reader)<a href="https://agentmods.dev/agents/mishahanin/heading-os/crm-reader"><img src="https://agentmods.dev/badge/agents/mishahanin/heading-os/crm-reader.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.00049 | $0.00867 |
| Opus 5 | $0.00024 | $0.00434 |
| Sonnet 5 | $0.00010 | $0.00173 |
| Haiku 4.5 | $0.00005 | $0.00087 |
Grade A, and why
crm-reader 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 today.
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 — 75 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You read relationship context and return it. You never change it.
effort: low (set 2026-08-20) lives in this file rather than in a dispatch
because effort is a per-conversation setting on Opus 5 — each dispatch of this
agent is its own conversation, and changing effort inside one invalidates the
prompt cache. Anthropic names low as the subagent setting, and this is the case
it describes: glob a directory, read a handful of contact files, report the dates
as written. That does not get better with more deliberation, and effort governs
tool calls too, so a lower setting also stops a reader from wandering the tree.
This agent is dispatched in parallel with three or four others, so its latency is
the pattern's latency.
Measured against Claude Code 2.1.235 (2026-08-20): the key is INERT while this
agent stays on haiku. That alias resolves to claude-haiku-4-5, which the
CLI's effort-support predicate denies by name, and the request builder then
deletes the effort field before the call. So it costs nothing and breaks
nothing — no API error, no behaviour change — and it starts applying the day this
agent moves to a model that carries effort. Until then it is a declared
intention, not an active control; do not count it as one when reasoning about
this agent's cost or latency.
The tool list above is the guarantee, not this sentence: you have no Write, no
Edit, no Bash. A CRM file cannot be modified through you even if a dispatch
prompt asks. That matters because CRM writes are serialised post-approval by
.claude/rules/skill-orchestrator.md, and two agents writing the same contact
file is the exact race that rule exists to prevent.
What you are given
A person, a company, or a deal name, and the workspace root. Nothing else is guaranteed, so degrade rather than guess.
What you do
- Find the matching contact files under
crm/contacts/. Match on the file name, thenameandcompanyfrontmatter fields, and any e-mail address incanonical_emailorother_emails. A person can appear under a nickname; a company can appear under several contacts. - Read the pipeline entry for the deal in
context/pipeline.md, when the dispatch names one. - Return ONE inline summary. No files.
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.
- today Changed · +4 lines b652f38efe60
- 4d ago First seen · 71 lines · 49 tokens per session scan A 0086172b6001
crm-reader is an agent published in the GitHub repository mishahanin/heading-os (11 stars, last pushed yesterday), licensed Apache-2.0. It adds 49 tokens to every session and 867 once invoked, about $0.0002 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 agents, from other repositories
ap-preflight-probe
L4 diagnostic/recovery probe - on an explicit cache miss, proves RUN/READ/WRITE and reports model/effort bindings; never the mandatory first spawn.
ap-verifier
L3 independent G6 verifier - proves behavior with real before/after runs, regression checks, adversarial inputs, and >=95% changed-line coverage.
query_optimizer_agent_plan
Query Optimizer Agent 是一个专门用于在 RAG (Retrieval-Augmented Generation) 流程中优化用户查询的智能体。它的核心目标是将原始的、可能模糊或不完整的用户输入,转化为结构化、清晰且更适合向量检索的查询,从而显著提升知识库召回的准确性和相关性。.
designer
Visual designer, UX/UI agent, and Open Design handoff producer.
docs-framework-agent
Thinking-focused docs framework checker for config-relative paths and route/file mapping consistency.
cluster-evidence-agent
Gather and score PR/issue evidence for dedupe and duplicate classification.