AI agent skill
Emem Locate And Recall
Resolve a free-form place name to an emem cell64 and recall signed Earth-observation facts at that location. Use when the user asks about current weather, vegetation index, elevation, soil properties, or any other geospatial measurement at a named place ("what's the temperature in Bengaluru", "how high is Denali", "what's the NDVI in the Sundarbans"). Returns content-addressed facts with Ed25519 receipts that can be verified offline. Reads are public — no auth required.
·
When to use this skill
Use Emem Locate And Recall when an AI agent needs a reusable SKILL.md workflow for this job: Resolve a free-form place name to an emem cell64 and recall signed Earth-observation facts at that location. Use when the user asks about current weather, vegetation index, elevation, soil properties, or any other geospatial measurement at a named place ("what's the temperature in Bengaluru", "how high is Denali", "what's the NDVI in the Sundarbans"). Returns content-addressed facts with Ed25519 receipts that can be verified offline. Reads are public — no auth required.
When not to use it
Skip Emem Locate And Recall when the task is outside the creativity category, or when a more specific skill in this directory already covers the same workflow with clearer triggers.
How to install
- Personal install: create ~/.claude/skills/emem-locate-and-recall/SKILL.md (and any bundled scripts) so Claude Code, Claude Desktop, and compatible agents can load it in every project.
- Project install: commit the same folder at .claude/skills/emem-locate-and-recall/ so teammates get the skill with the repo.
- Restart the agent session after copying files so it re-scans the skills directory, then ask for the task in words that match the skill description.
What this skill does
# emem-locate-and-recall
This skill turns a place name into signed Earth-observation facts in two REST calls.
## When to invoke
The user asks about a measurable geospatial fact at a named place:
- "What's the current 2 m air temperature in Bengaluru?" - "Show me the NDVI in the Sundarbans." - "How does the soil pH look in central Iowa?" - "What's the elevation of Mount Kilimanjaro?"
If the user has a `cell64` already (a string like `defi.zb493.xoso.zcb6a`), skip the locate step and go straight to `/v1/recall`. If they want a *thumbnail* (visual preview) instead of numeric facts, use `GET /v1/cells/{cell64}/scene.png` directly.
## How to invoke
The endpoint is `https://emem.dev`. Reads are public.
### Step 1 — resolve the place name
```sh curl -sf -X POST https://emem.dev/v1/locate \ -H 'content-type: application/json' \ -d '{"q":"Bengaluru, India"}' | jq '.cell64, .place_label, .via' ```
`via` reports how the name was resolved (`embedded`, `cache`, `photon`, `nominatim`, `fallback`). Treat `via=fallback` as low-confidence and ask the user to clarify.
### Step 2 — recall the band(s)
```sh curl -sf -X POST https://emem.dev/v1/recall \ -H 'content-type: application/json' \ -d '{"cell":"<CELL64_FROM_STEP_1>", "bands":["weather.temperature_2m","indices.ndvi"]}' \ | jq '.facts[] | {band, value, unit, signed_at}, .receipt.fact_cids[]' ```
The response carries `.facts[]` (with `value`, `unit`, `signed_at`, `signer_pubkey_b32`) and `.receipt` (Ed25519 signature, fact_cids, schema_cid, registry_cid). The `fact_cids[i]` is a durable handle — re-fetching that CID from any responder in any year returns the same bytes.
## Picking bands
The full band list is at `https://emem.dev/v1/bands` (124 auto-materializable bands, 1792 total dims). Common picks:
- **Weather**: `weather.temperature_2m`, `weather.precipitation_mm`, `weather.relative_humidity_2m`, `weather.wind_speed_10m` - **Air quality**: `cams.pm25`, `cams.no2`, `cams.aod_550` - **Climate**: `era5.t2m`, `era5.precip` (1940→present hourly) - **Vegetation**: `indices.ndvi`, `indices.evi`, `modis.ndvi_mean` - **Elevation**: `copdem30m.elevation_mean`, `gmrt.topobathy_mean` - **Land cover**: `esa_worldcover.lc_2021` - **Embeddings**: `geotessera` (128-D, default 2024 vintage); the responder also ships `geotessera.{2017..2024}` for per-year and `geotessera.multi_year` (1024-D = 8×128 stacked).
If unsure which band fits the user's question, call `/v1/bands` and filter by family (`weather`, `vegetation`, `terrain`, `landcover`, `climate`).
## Recovering from errors
- **HTTP 404 `cid_not_found`** — band has no fact at this cell on this responder. With `EMEM_AUTO_MATERIALIZE=on` (default at emem.dev) the recall already attempted to materialise; the band has no upstream connector wired. Use `/v1/data_availability` to check which bands have a materialiser. - **HTTP 400 `unknown cell64 symbol`** — typo in the cell64. Re-run step 1 with the place name. - **HTTP 422** — request body malformed; the responder's structured error message names the missing field.
## Verifying offline
Pass the returned receipt to the `emem-verify-receipt` skill (or to `POST /v1/verify_receipt` server-side) to confirm the signature without re-trusting the responder.
## Worked example
``` USER: What's the current temperature in Bengaluru, and the NDVI?
CLAUDE invokes this skill: POST /v1/locate {"q":"Bengaluru, India"} → cell64=defi.zb493.xoso.zcb6a POST /v1/recall {"cell":"defi.zb493.xoso.zcb6a", "bands":["weather.temperature_2m","indices.ndvi"]} → facts: weather.temperature_2m = 28.4 degC indices.ndvi = 0.42 → fact_cids: [qi3jo4..., bn7c4d...]
CLAUDE replies: "Bengaluru is at 28.4 °C right now (signed by emem.dev at 2026-05-08T13:22Z). The vegetation index there is 0.42 — middling, consistent with a dry urban core. Both facts are content-addressed: qi3jo4...l2hgjtwm and bn7c4d...kkb73a respectively." ```
Intended uses
- Use Emem Locate And Recall when this documented workflow matches the task.
Related skills
Related skills in this directory, for comparison before you install another skill.
creativity
3D Isometric Miniature Diorama
A reusable prompt for asking an AI assistant to work as 3D Isometric Miniature Diorama.
creativity
A Clay-Crafted City: Mini [CITY NAME] World
A reusable prompt for asking an AI assistant to work as A Clay-Crafted City: Mini [CITY NAME] World.
creativity
A Moment Shared with the Wild
A reusable prompt for asking an AI assistant to work as A Moment Shared with the Wild.
creativity
A prompt that will turn your photo into a scene from a cult 90s movie
A reusable prompt for asking an AI assistant to work as A prompt that will turn your photo into a scene from a cult 90s movie.