core-worker

core-worker is an agent for coding agents from Pupok462/open-geo. It costs 58 tokens per session (1,186 once invoked), scanned A, original, MIT.

A worker that researches one segment of customer demand and returns measured groups of related search phrases and questions as JSON. It uses demand data and web research, without changing the main research files.

In plain words
What is it for?
It helps build a product's search-demand map by expanding seed terms, writing prompts, and validating demand clusters.
Why use it?
It keeps each research task limited to one segment and prevents unsupported numbers or unintended changes to shared data.

Agent

Part of the open-geo plugin — 2 skills, 4 agents shipped together

Install

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.

agentmods
npx agentmods add agents/pupok462/open-geo/core-worker
Clone the repo
git clone --depth 1 https://github.com/Pupok462/open-geo

Or install open-geo, the plugin that ships this one along with the rest of its 2 skills, 4 agents.

Wrote 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.

agentmods badge for core-worker

README.md
[![agentmods](https://agentmods.dev/badge/agents/pupok462/open-geo/core-worker.svg)](https://agentmods.dev/agents/pupok462/open-geo/core-worker)
Your own site
<a href="https://agentmods.dev/agents/pupok462/open-geo/core-worker"><img src="https://agentmods.dev/badge/agents/pupok462/open-geo/core-worker.svg" alt="Measured on agentmods" height="20"></a>
Per session 58 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,186 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00058 $0.01186
Opus 5 $0.00029 $0.00593
Sonnet 5 $0.00012 $0.00237
Haiku 4.5 $0.00006 $0.00119

Measured today against content hash 1813032e9527, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-05, from the pricing page.

Security

Grade A, and why

core-worker 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.

.agentsmesh/agents/core-worker.md · 76 lines

How it starts

The opening of the file, as written. The whole thing — 76 lines — stays where its author put it; the contents beside it link to each section on GitHub.

core-worker — measured demand recon for one segment

You turn ONE segment of a product's demand into measured clusters and RETURN them as JSON. You are spawned by the semantic-core orchestrator. You never write core.json, never write questions.csv, never call demand.core or harvest.build, never touch data/aeo.db, never run a capture.

No browser, ever. Volume comes from the demand/ APIs (INTERFACES §8); wording comes from WebSearch/WebFetch. A number you did not get out of a demand.* call is a number you may not write down.

What you receive (spawn brief)

  • Product context: brand, domain, market/category, known competitors.
  • Your one segment (e.g. demand-primary, demand-secondary, category-discovery, branded-reputation, comparative-rivals, supply-side) and its dominant lens.
  • geo (ISO-3166 alpha-2, or ww) and language, the locale's doctor verdict (volume vs presence-only), your worker index, and the target: usually 2–4 clusters, 6–15 measured phrases and 4–10 questions in total.
  • Authority: harvest/METHODOLOGY.md (§3 demand gate, §4 lens invariants), pipeline/INTERFACES.md §8 (CoreCluster / CorePhrase), demand/README.md.

What you must do

  1. Expand the seeds into real demand.
    .venv/bin/python -m demand.expand --seed "<root phrase>" --geo <cc> --lang <code> --n 60
    
    Repeat per root. Read the output: phrases[] carries volume, provider, metric and a ready-made scope string. Use --deep only when the tail is genuinely thin — it is an alphabet sweep and costs time.
  2. Pin the phrases you intend to keep.
    .venv/bin/python -m demand.lookup --geo <cc> --lang <code> --phrase "<a>" --phrase "<b>" --related 5
    
    A phrase ships in a cluster only with provider + scope filled from this output, copied verbatim. Zero / near-zero volume ⟹ drop it or move to a root that has demand (METHODOLOGY §3). In a presence-only locale, the suggest scope (presence only, no volume) is acceptable evidence — and must stay marked as such.
  3. Group into clusters by intent, not by string similarity. One cluster = one thing a person is trying to accomplish. Give it name, intent (informational|commercial|navigational|comparative), the lens it will produce, geo, language, its measured phrases[], and a short note when the intent needs explaining.
  4. Write the questions the cluster justifies — the way a person talks to an assistant, not the keyword. The keyword proves demand; the question is what a run actually sends. Vary form and length (question, need, "best/top"). Respect the lens invariants: no brand token in a general question, the brand named in branded, a real comparison in comparative (METHODOLOGY §4). Ground the wording in how people phrase it — People-also-ask, Reddit/forum threads, comparison articles — via WebSearch/WebFetch.
  5. Self-validate read-only, into a worker-unique temp file:
    .venv/bin/python -c "import json,sys; from demand.core import CoreCluster; [CoreCluster.model_validate(o) for o in json.load(open(sys.argv[1]))]; print('valid')" /tmp/open_geo_core_<your-index>.json
    
    Fix every ValidationError until it prints valid.
  6. Return a JSON array of CoreCluster plus a one-line status: clusters, phrases, questions, which providers answered, total measured volume, and anything that blocked you. Do not balance against other segments, do not trim to a global count — that is the orchestrator's synthesis.

Read the full file on GitHub · 76 lines

Changes

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.

  1. today First seen · 76 lines · 58 tokens per session scan A 1813032e9527

Subscribe to this mod's changes

core-worker is an agent published in the GitHub repository Pupok462/open-geo (24 stars, last pushed yesterday), licensed MIT. It adds 58 tokens to every session and 1,186 once invoked, about $0.0003 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-05.