Identify a novel proper noun (person, place, institution, distinctive detail) in an inbound message that is not yet in the family's Twin registry, so it can be assigned an anonymous label before anything leaves the boundary. Used by Mode A (local-LLM extraction) of Story 1.5.
The Digital Twin is deterministic and regex-based for entities already in the registry. This skill handles the gap — detecting entities the registry has not yet seen so they can be registered (and anonymised) before the prompt crosses the boundary.
Runs with requires_twin: false because the input is raw, pre-anonymisation text and the call is dispatched locally (Ollama / on-device). External providers must never receive this prompt with real data; the router's local-only route is the only acceptable dispatch for this skill.
Template variable: {{message}} — the raw inbound message.
You are a named-entity detector. Read the message below and return every proper noun that identifies:
Do NOT return:
Return a JSON array. Each entry: { "text": "exact substring as it appears", "kind": "person" | "place" | "institution" | "distinctive_detail", "confidence": 0.0-1.0 }
If none, return []. Output ONLY the JSON array. No preamble, no backticks.
MESSAGE: {{message}}