ontoref-code/install/resources/templates/glossary/ontoterm-propose.md
2026-07-10 01:44:59 +01:00

2.3 KiB

description argument-hint allowed-tools
Propose a new glossary term — drafts an entry in .ontology/glossary.ncl <new-term-id> [hint about what it means] Bash, Read, Edit

Propose a new glossary term

You are about to add a draft entry to the project glossary at .ontology/glossary.ncl.

Discovery first

  1. Run ./ontoref describe term <id> --fmt json 2>/dev/null to verify the term doesn't already exist (under any alias). If it returns { "found": false } proceed; otherwise show the existing entry and stop.
  2. Search the codebase / ontology for context before drafting:
    • rg -i "<keyword>" .ontology/ adrs/ reflection/
    • Identify whether the term originates from an Axiom, Tension, Practice, ADR, Schema, Module, or is External folklore.

Draft fields (REQUIRED)

Ask the user (or infer when obvious) for:

  • id — kebab-case unique identifier
  • name — display label, EN + ES
  • category — one of: 'Discipline, 'Concept, 'Practice, 'Artifact, 'Procedure, 'Tension, 'Antipattern
  • definition — first sentence is the standalone definition, both EN and ES
  • origin{ kind = 'Axiom|'Tension|'Practice|'Adr|'Schema|'Module|'Crate|'External, ref = "<id-or-path>" }
  • related_terms / related_nodes (optional but encouraged)
  • examples / forbidden (optional, both EN and ES if provided)

Important rules

  • Always set verified = false (DRAFT) — the user explicitly promotes via verified = true after review.
  • DO NOT touch reflection/defaults/glossary.ncl (that file is the protocol seed, propagated to consumer projects via migration). Project-specific terms go in .ontology/glossary.ncl::project_terms.
  • DO NOT invent an origin. If unclear, ask the user or use { kind = 'External, ref = "" }.
  • All natural-language content goes in both en and es keys. If a translation is missing, leave the other lang empty ("") rather than copy-paste.

After drafting

  1. Show the user the NCL block you propose to add.
  2. Wait for confirmation.
  3. Append the block to the project_terms array in .ontology/glossary.ncl.
  4. Run nickel export --import-path . --format json .ontology/glossary.ncl > /dev/null to verify it parses; report exit code.
  5. Run ./ontoref describe term <new-id> to confirm it reads back correctly.

Arguments received: $ARGUMENTS