--- name: blueprint-glossary-collect description: "Collect the terms the documents define, the ways each word is spelled, and the jargon, each quoted where it was found, into .blueprint/glossary.json — changing no document." --- # Collect the terms `.blueprint/answers.json` names the documents (`documents`, one path per line) and whether what you find goes into the folder's `chaff.yaml` (`write`). Read every document in full. The person may not be an engineer: say what you do in plain words. Change nothing in the repository: the documents stay exactly as they are, and `chaff.yaml` is the next step's. Write only under `.blueprint/`. ## What to collect - **Every term a document defines.** `sh /checks/chaff.sh tree --format json` shows chaff's reading: every node of `kind` `definition` names a defined term in `attrs.term` (「社員」とは…, (以下「甲」という)). Each must be in the glossary with its definition from that document; the check refuses the glossary otherwise. Add any definition chaff missed. - **A term defined more than once**, in one document or across them — list every definition. That two definitions disagree is exactly what the person needs to see. - **A word spelled more than one way** (サーバー / サーバ, ユーザー / ユーザ, 問い合わせ / 問合せ): every spelling found, each quoted, and the one to use in `preferred` — the one the documents use most, unless a definition or the person's style says otherwise; say why in `note`. - **Jargon**: a word only understood inside the organisation (`jargon: true`). ## Write `.blueprint/glossary.json` ```json { "terms": [ { "term": "社員", "definitions": [ { "source": "kitei.txt", "address": "2", "quote": "「社員」とは、会社と雇用契約を結んでいる者をいう" }, { "source": "tebiki.md", "address": "h1.1", "quote": "「社員」とは、正社員と契約社員をいいます" } ], "spellings": [{ "spelling": "社員", "citations": [{ "source": "kitei.txt", "address": "3", "quote": "社員は、テレワークをする日の前日までに" }] }] }, { "term": "サーバー", "spellings": [ { "spelling": "サーバー", "citations": [{ "source": "tebiki.md", "address": "h1.2", "quote": "会社のサーバーに接続できたら" }] }, { "spelling": "サーバ", "citations": [{ "source": "kitei.txt", "address": "4", "quote": "VPN を通してサーバに接続する" }] } ], "preferred": "サーバー", "note": "定義の条がサーバーと書くため" } ] } ``` Every quotation is copied character for character from the place its `address` names; the check runs `chaff cite` on every one. A definition's quotation contains the term; a spelling's quotation contains that spelling. ## Done when `node /checks/glossary.mjs collect` (with `BLUEPRINT_BASE` and `BLUEPRINT_USECASE` set to the pack folders from your prompt) passes. It writes `.blueprint/glossary.txt`, which the person reads before the next step.