Инструмент us-vs-them вычисляет line-level provenance: кто автор каждой строки — человек или агент. Он работает как библиотека и как CLI-утилита, а данные берёт из истории версий текста.
Зачем это нужно. В эпоху агентского редактирования происхождение текста становится важным. Строки, написанные или отредактированные человеком, почти священны: агент должен хорошо подумать, прежде чем трогать их. Зато текст, который наплодил другой агент, можно переписывать свободно.
Пример: в приложении, собранном в стиле vibe coding, вы хотите выделить куски кода, за которые отвечаете лично, чтобы следующий агент не снёс их. Другой случай — README.md: он сгенерирован, но вступительные абзацы вы переписали. Агент может править нижнюю часть, но к началу не должен лезть.
Важно: никакой специальной разметки не нужно. Обычный plain text и markdown работают как есть. Алгоритм использует только то, что каждая новая версия текста создана под конкретным авторством — человека или агента. В git-репозитории эта история уже есть.
На выходе — диапазоны строк: «острова» человеческого текста в «море» машинного. В основе простой diff. Алгоритм учитывает объединение, разделение и «разбавление» авторства, чтобы не сойтись ни к полностью машинному тексту, ни к полностью человеческому.
Для локального использования нужен bbin. Команда выглядит так: us-vs-them --ours dan@eighttrigrams.net README.md. Она выдаёт, например, 1-3 — 0.00, 4 — 1.00, 5-7 — 0.00, 8-20 — 0.46, 21-164 — 0.00. Тут 1.00 — диапазон целиком написан человеком, 0.46 — изначально человеческий, но переделан агентом, 0.00 — полностью агентский.
Параметры: --ours задаёт людей, --theirs — агентов. Указывать надо одну сторону, ту, где список короче; оба параметра одновременно не принимаются. Разобраться в поведении проще всего на примере caution_test.clj.