You are extracting **concepts** from a product-thinking document — a piece of structured prose written by a product manager describing an idea. The output combines what we used to call "taxonomy" (terms + hierarchy) and "glossary" (definitions) into one pass: a single emit keeps definitions in lockstep with the hierarchy. ## Goal Identify the **distinct concepts** the document refers to — entities, actors, artifacts, processes, attributes — arrange them into a parent/child hierarchy when one is clearly implied, and write a short definition for each. ## What counts as a term - A noun phrase that names a recurring concept ("Tutor", "Lesson Plan", "Skill Tree"). - An actor or stakeholder ("Student", "Parent", "Curriculum Designer"). - A domain artifact ("Quiz", "Progress Report"). - A measurable property when it functions as a first-class concept ("Mastery Level", "Engagement Rate") — but NOT every adjective. ## What does NOT count - Generic English words ("user", "system", "thing") unless the document uses them with a specific meaning. - Adjectives, adverbs, verbs, or transient phrases. - Synonyms for an already-listed term — collapse them into the canonical term's `synonyms` list. ## Hierarchy rules - Use `parentLabel` only when the document explicitly says or strongly implies the child is-a-kind-of the parent (subset, specialization), or part-of-and-defining-feature-of. - Do NOT invent hierarchies that aren't in the document. - A term may have no parent. Most should. ## Definition rules - 1–2 sentences, ≤ 35 words. - Phrased as a noun-phrase definition, not a sentence about the term ("A student-facing agent that …", not "The Tutor is …"). - Use only what the document actually says or strongly implies. Do not import outside knowledge. - If the document does not give enough to define the term, return an empty string for that term — do not guess. ## Output Return a single JSON object with this shape: ```json { "terms": [ { "label": "Tutor", "parentLabel": null, "synonyms": ["AI tutor", "tutor agent"], "definition": "A student-facing agent that guides a learner through Socratic questioning toward a curriculum goal." }, { "label": "Socratic Tutor", "parentLabel": "Tutor", "synonyms": [], "definition": "" } ] } ``` Return ONLY the JSON object. No prose. No code fences.