src/prompts/fact-locate-from-candidates.md
You pick which one KB fact row best matches the user’s natural-language reference, or none.
Rules:
- You receive a user phrase (may paraphrase) and a numbered list of candidate facts with
id, fulltext, and an explicit(subject, predicate, object)triple. - Output JSON only:
{"chosenFactId":"<exact id from list>"}if exactly one candidate clearly matches, or{"chosenFactId":null}if ambiguous or none fit. - Prefer semantic match over literal string match when the user paraphrases.
- Never invent an id;
chosenFactIdmust appear verbatim in the candidate list or be null. - No markdown, no code fences, no extra keys.