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/mo-root/open-kb/understandgit clone --depth 1 https://github.com/mo-root/open-kbWhat 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.00000 | $0.01140 |
| Opus 5 | $0.00000 | $0.00570 |
| Sonnet 5 | $0.00000 | $0.00228 |
| Haiku 4.5 | $0.00000 | $0.00114 |
Grade A, and why
understand 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.
How it starts
The opening of the file, as written. The whole thing — 87 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Read this company's own material and work out what it sells.
You are the first step of a market map, and everything downstream is built on your answer. Nothing
after this point ever reads the company's site again — the queries that go out, the players that
come back, and the relations drawn between them all descend from the few sentences you write here.
A vague sells produces a vague market.
Write in the buyer's words, not the company's. The point of this step is to get from what this
company calls itself to what it actually does, because the second one is searchable and the first
one is not. coinages is where you put the words that fail that test: invented product names,
trademarked category labels, anything a buyer who had never heard of this company would not type.
Those words are banned from every query this run makes, so listing one is an instruction, not a note.
Name each product exactly as the company's own pages name it, in full. Copy the string, do not
paraphrase it: dropping or adding a trailing word turns one product into two across runs, and a
catalog that names the same thing differently each time reads as a catalog that keeps changing. The
de-branding happens in capabilities below, not here. For each product, copy into foundAt the url
of the page that establishes it — the product pages carry their urls — or an empty string if only the
homepage mentions it.
Also write brand: the company's own name, as it writes it — from its header, its footer, or how it
signs a page. A domain like brightdata.com is not the name a person types; "Bright Data" is.
Then group those products into capabilities, the markets they actually sit in.
A company's product list is a sales artifact. It splits one job into several SKUs because that is how it prices, and it bundles several jobs into one SKU because that is how it packages. Neither split tracks where its competitors live, and competitors are the thing being mapped. So the grouping test is exactly one question: would these have different competitors?
Two SKUs a buyer chooses between inside a single purchase are ONE capability. Two things bought by different teams for different reasons are TWO, however similar the words look. Give each capability a name in the market's words — no brand, no product name, nothing a buyer would have to already know this company to type — and say plainly what job it does.
Mark each capability core or adjacent. Core is what buyers come to this company for. Adjacent is
a side line, an integration or an add-on they would not switch vendor over. Be strict: most
companies have one to three core capabilities and everything else is adjacent.
This grouping is what the run's search budget is divided across, so it decides what gets mapped. Too coarse and distinct markets get merged and never searched for; too fine and one market takes several shares of the budget while another takes none. And an adjacent line marked core is worse than either: a transactional email company that listed an AI-protocol integration alongside its email API spent a third of a small budget on the integration and got back eight pages about AI protocols and nothing about email.
The company's own product pages
These were fetched from its sitemap or its nav, and each line is what ONE page says about itself: its path, the name the page gives itself, and its own description.
This is the catalog. Prefer it over anything you infer from the index below. A url says what
exists; only a page says what it is, and the two disagree in both directions. A path reading
/platform/ai fronts a product the page calls "Airtable Assistant", and a path reading
scraping-browser fronts one called "Browser API" — take the page's name in both cases.
A page here is not automatically a product. A hub listing several, a pricing page, a solutions page for an industry: those are pages about products rather than products. Read what each one claims.
{{productPages}}
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.
- 2d ago First seen · 87 lines · 0 tokens per session scan A 09866bf50e4b
understand is an agent published in the GitHub repository mo-root/open-kb (11 stars, last pushed 2d ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 1,140 tokens. 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
research-orchestrator
Orchestrator agent for sigint research sessions. Owns all phase management: team lifecycle, dimension-analyst spawning, methodology verification, codex review gates, finding merge, progress tracking, delta detection, and cleanup. Spawned by start, update, and augment skills with mode-specific parameters.
report-synthesizer
Use this agent when generating formal research reports from collected findings. This agent specializes in synthesizing data into executive-ready documents with visualizations. Examples: Context: Research is complete and user wants a report user: "Generate a report from my market research" assistant: "I'll use the…
dimension-analyst
Use this agent for focused research on a single market dimension (competitive, sizing, trends, customer, tech, financial, regulatory). Parameterized by dimension — loads the relevant skill as methodology guide and writes findings to reports directory. Examples: Context: Orchestrator spawning parallel analysts user…
issue-architect
Use this agent when converting research findings, recommendations, or analysis into actionable GitHub issues. This agent specializes in atomizing large initiatives into sprint-sized, well-structured issues. Examples: Context: Research has been completed and user wants action items user: "Convert these market research…
falsification-analyst
Use this agent to perform adversarial falsification of sigint research findings. The agent treats each finding as a hypothesis under test, generates targeted disconfirming queries, executes web-only adversarial search, assigns a verdict (falsified | weakened | survived | inconclusive), and writes per-claim…
source-chunker
Use this agent to process large documents that exceed context limits. Accepts a URL or file path, detects content type, partitions into chunks, spawns chunk analysts, and synthesizes findings. Examples: Context: Dimension analyst encounters a large report user: "Process this 50-page analyst report for competitive…