--- name: blueprint-compare-pair description: "Pair every article of the old version with its article in the new one, and say whether each changed, was added or was removed — writing .blueprint/comparison.json and changing no document." --- # Pair the articles of the two versions `.blueprint/answers.json` names the old version (`old`), the new version (`new`) — one file each — and what the person wants looked at first (`focus`, may be empty). Read both in full. The person may not be an engineer: say what you do in plain words. Change nothing in the repository: neither version is touched. Write only under `.blueprint/`. ## Find the articles Run `sh /checks/chaff.sh tree --format json` on each version. Every node whose `kind` is `article` is one article; its `address` (`"4"`) is how you name it below, and `attrs.label` (`第4条`, `Article 4`) is how the person reads it. The check uses the same tree, so an article chaff does not read as one is not yours to pair. ## Pair them For each article of the old version, find the article of the new version that carries the same provision — by what it says, not by its number: a provision that moved or was renumbered (old 第9条 is new 第8条) is one pair. Then write `.blueprint/comparison.json`: ```json { "rows": [ { "old": "1", "new": "1", "change": "same" }, { "old": "4", "new": "4", "change": "changed", "what": "委託料が月額200,000円から220,000円になった" }, { "old": null, "new": "5", "change": "added", "what": "毎月5日までの報告の条が足された" }, { "old": "8", "new": null, "change": "removed", "what": "成果物の扱いの条が消えた" }, { "old": "9", "new": "8", "change": "same" } ] } ``` - `same` / `changed` — both `old` and `new`. `changed` needs `what`: one line, in the person's language, saying what is different, with the words or numbers from both versions. A change in a paragraph or an item is a change to the article that holds it. - `added` — only `new`; `removed` — only `old`. A `what` saying what the article is about helps the person. - Every article of each version appears in exactly one row. Whether a pair is `same` or `changed` is not a judgement: the check compares the two articles' text (spacing aside, and leaving out the article's own number) and refuses a `same` whose text differs and a `changed` whose text does not. When you pair two articles that the check calls different but you think the change is trivial (punctuation, a character's width), it is still `changed`: say so in `what`. ## Done when `node /checks/comparison.mjs` (with `BLUEPRINT_BASE` and `BLUEPRINT_USECASE` set to the pack folders from your prompt) passes. It writes `.blueprint/comparison.txt`, the pairing a person reads before the table.