Один организм из лучших открытых проектов человечества. Органы остаются живыми ветками upstream — единым становится обмен: геном, синапсы, кровь, метаболизм, иммунитет.
COMMONS — проект-организм, собранный из топ-100 публичных GitHub-репозиториев. Снимок рейтинга от 26.10.2026 хранится как данные: organs/top100-2026-10-26.yaml.
С 0.2.0 организм исполняется, с 0.2.1 впервые коснулся мира (сенсорика), а с 0.2.2 думает своим метаболизмом: сенсорика markitdown и метаболизм llama.cpp прошли один трейс — документ превращён в Markdown и сжат до сути, токены посчитаны сервером в крови — runs/2026-11-01-organism-pulse/. DoD M1 закрыт. С 0.3.0 все пять спайков исследовательской программы получили честные харнессы (S2 замерен, S1/S3/S4/S5 ждут живой хост), а приёмки спайков живут в CI. С 0.4.0 организм живёт во времени: PID 1 — демон-сердцебиение (boot → organ.health → shutdown), смерть всегда записана — runs/2026-11-01-pid1/. С 0.5.0 у организма есть ген памяти (SPEC-0005: память — производная крови), решение по движкам (ADR-0007) и второй автопортрет — excalidraw-карта из живого реестра. С 0.6.0 память исполняется: граф + вектора + replay из крови, PLAN читает её read-only, движок — орган в манифесте. С 0.7.0 иммунитет исполняется: лицензионный барьер как код (SPEC-0006, ADR-0008) — матрица лицензий в данных, fail-closed на неизвестное, commons-immune красит PR раньше, чем AGPL попадёт в тело. С 0.8.0 метаболизм в бюджете (SPEC-0001 G3): лимиты на трейс и на вызов — поле budget в манифесте, порог → событие alert в крови, исчерпание → HALT. С 0.9.0 у организма есть внешний конвейер (SPEC-0007, ADR-0009): n8n — внешний узел (fair-code, не встраивается), референс-развёртывание и воркфлоу — данные с белым списком команд; валидатор commons-pipeline красит PR раньше, чем произвольная команда попадёт в конвейер. С 0.10.0 организм отдаёт первый патч upstream (ROADMAP M3, ADR-0001): верифицированный docs-vs-code дрейф в n8n-docs (MCP Server Trigger — OAuth2-опция и незадокументированные параметры), патч в форке — за PR остался один шаг человека; карта занятости баг-очередей органов — runs/2026-11-02-upstream-patch/. С 0.11.0 у организма есть руки (SPEC-0008, ADR-0010): openclaw подключён за стволом мозга как эффектор — мост через CLI openclaw gateway call с белым списком методов (health/status/chat.send/chat.abort); параметры — данные JSON, shell не строится; руки без воли — исполняют импульсы ствола, не решают; токен и живой gateway — у человека (PID 1). С 0.12.0 организм впервые сдал кровь целиком: гематология перечитывает всю пролитую кровь по схеме (SPEC-0003 v0.4.0, п.6), OSV-скан ищет патогены в корме, dependabot приносит антигены еженедельно, OpenSSF Scorecard выдаёт паспорт иммунитета. С 0.13.0 у организма есть трансплантология (SPEC-0009, ADR-0011): донорский протокол — кровь уходит в upstream только по рукопожатию (DCO) и тому, кто дарит; CLA-ошейник не подписывается — патч живёт внутри организма. С 0.14.0 весь реестр виден: 18 донорских карт — каждая патч-цель типирована живыми фактами (2026-11-02); дарим тому, кто дарит. С 0.15.0 тело не требует ни одного канала (SPEC-0010, ADR-0012): текст — универсальный нерв — всё, что организм говорит и слышит, есть текст; картинки не молчат; итоги гейтов — словами и кодом возврата; персона-доказательство — Елена Келлер: 578 суток зрения и слуха на 32 115 дней жизни — и 12 книг (runs/2026-11-02-persona/). С 0.16.0 у организма есть гигиена дома: doctor (scripts/doctor.py) ловит docs-drift на автомате — протухающие числа, версии, ссылки, пути, SPEC/ADR-ссылки, точки входа — блоха красит PR; автопортреты под гейтом свежести (--check в CI). С 0.17.0 организм прошёл красный прогон (runs/2026-11-02-red-run/): замена органа без правки ствола, одновременный отказ без крэша, восстановление из крови, 10/10 атак на белые списки отбиты — аудит-матрица внешней рецензии закрыта каркасно, польза А/Б остаётся за живым хостом. С 0.18.0 дом убирается по расписанию: свип .github/workflows/fleas.yml — доктор и внешние ссылки (lychee) каждую неделю без пушей: ссылки умирают сами, не только от пушей; конфликт-маркеры и числа-протухатели (счётчики приёмок и практик, версии в бейджах) — под гейтами доктора. С 0.19.0 у гейтов нет слепых зон: ROADMAP под гейтом чисел-протухателей — исторические счётчики приёмок выметены (живое число в python -m pytest -q), версия сверяется в обоих README — en молча отстал на три релиза и догнан; ревизия самой блохоловки поймала блох в слепых зонах — теперь зон нет. С 0.20.0 машина сама изображает людей с их хотёлками (docs/personas.md): реестр персоны × хотёлки × статус × связи — от Человека (PID 1) до апстрим-мейнтейнера, проходца, внешнего ревизора и будущего contributor; хотёлка-сирота или без статуса — блоха (гейт wants), честный бэклог без фантазий: А/Б и живой red-run ждут хоста. С 0.21.0 спайки замеряются, где хост уже есть: S6 — живой bench всех трёх движков памяти (Python 3.12; chromadb 1.5.9, lancedb 0.41.0, sqlite-vec 0.1.9): sqlite-vec 4.0/6.5 мс против базовой линии 41.4/224.5 мс — выбор по метрикам, не по моде, вписывание в манифест — отдельная волна по ритуалу ADR-0005 (spikes/s6-memory/); S5 — полный цикл живым specify 1.2.6.dev0: init-структура и маппинг секций сверены, пробел генома назван («Гарантии» без пары — у spec-kit роль играют Success Criteria/Measurable Outcomes) (spikes/s5-genome/); S1/S3/S4 ждут живые серверы и браузер — не фантазируем. С 0.22.0 полномочия исполняются рантаймом (SPEC-0002 v0.4.0): страж-перехватчик прерывает вызов органа, вышедшего за заявленное (fs/network/process), ещё до факта нарушения — security.violation в крови, трейс закрывается reflect+halt; грамматика полномочий в манифесте исполнима и fail-closed; самозваный адаптер не проходит привязку — runs/2026-11-02-wave7-authority/. С 0.23.0 доктор ловит яд и пишет отчёт машиной (волна №9 такт 1): гейт secrets ищет ключи на видном месте (GitHub/AWS/Slack/Google/PEM-форма) в статике и в крови runs/ — в отчёте секрет замаскирован, ловец не размножает пойманное; --json — машиночитаемый отчёт каждого прогона для коллег-агентов (подключение следа к самим воротам — такт 2, ждёт ключ с правом workflow). С 0.24.0 такт 2 доставлен (ключ с правом workflow): таблица доктора в summary и артефакт doctor-report.json на каждый прогон ci.yml и fleas.yml, timeout-minutes на все jobs и concurrency — ворота не висят. С 0.24.1 свип не краснеет от чужих стен: medium.com (403 ботам датацентровых IP, живой прогон 41471082096) — в исключениях lychee; доказано живым прогоном: память воротов работает, артефакт существует. С 0.25.0 страж знает пути и порты (SPEC-0002 v0.5.0, такт 3 волны №9): скоуп {mode, paths} ограничивает орган заявленными каталогами (сравнение по realpath — симлинк-побег закрыт), {hosts, ports} — заявленными портами; незаданная переменная в путях полномочий — орган не развёрнут (п.6); манифест дома мигрирован: ollama/llama.cpp сужены до заявленных портов, browser-use пишет только в каталог загрузок — runs/2026-11-02-wave9-scopes/. С 0.26.0 организм восстанавливается из крови (SPEC-0003 v0.5.0, волна №10): журнал — цепочка конвертов (prev_id), разрыв ловится при чтении (verify, гематология красит), пролитая кровь без цепочки валидна навсегда; сессия ствола мозга реконструируется по журналу целиком — план, вызовы, вердикты, остановки и цена (blood.resume), гэп честно роняет complete — runs/2026-11-02-wave10-resume/. С 0.27.0 организм впервые сравнил себя с собой на живом хосте (волна №10, хотёлки W-0011 и W-0012 одним махом — одно другое не исключает): живой GLM (z-ai CLI) сам спланировал и решил задачу через настоящие органы — группа «с организмом» в трёх семенах из трёх решила задачу, восстановилась резервом после живого отказа и имела приманку, прерванную стражем до факта (сервис-свидетель не видел ни одного соединения); группа «без» (голый диспетчер) трижды потеряла задачу, утекла по-настоящему и не оставила ни одного конверта крови; живой red-run прервал ренегатов fs/сети до факта, пережил смерть процесса восстановлением из крови — и нашёл слепую зону: детёныши процессов (process: spawn) выводят сеть из-под стража, кандидат SPEC-0002 v0.6.0 (runs/2026-11-02-wave10-ab-live/, runs/2026-11-02-wave10-red-run-live/). С 0.28.0 страж наследуется потоками (SPEC-0002 v0.6.0, волна №11): полномочия связывают код органа, а не поток — поток, рождённый под стражем, наследует его (обёртка Thread.start), escape через threading.Thread закрыт; внук и подкласс Thread тоже под стражем; __pycache__-запись ленивого импорта прерывается с предписанием прогреть импорты; поток вне вызова — граница действия, не дыра — runs/2026-11-02-wave11-threads/. С 0.29.0 детёныши процессов под стражем (SPEC-0002 v0.7.0, волна №12): execve роняет audit hook, но страж оборачивает subprocess.Popen — питоновский детёныш получает конверт COMMONS_AUTHORITY, загружает страж на старте (sitecustomize, битый конверт — exit до первого оператора) и живёт под полномочиями органа; внук наследует тем же механизмом, наследование переживает чужую оболочку; скоуп {mode: spawn, programs, max_children} декларирует рождение; чужой бинарник конверта не читает — честная граница — runs/2026-11-03-wave12-children/. С 0.30.0 дом сужает полномочия детёнышей поимённо (волна №12, такт 2): поверх наследования стража (0.29.0) манифест дома v0.5.0 декларирует детёнышей stdio-органов в скоупе процессной оси ({mode: spawn, programs: [...]}) — «рожаешь — назови по имени»: markitdown и browser-use названы, http-органы — process: none (runs/2026-11-03-wave12-children/). С 0.31.0 детёныш закован ядром (SPEC-0002 v0.8.0 п.11, волна №13): скоуп process принимает sandbox: {network: none} — детёнышу до execve ставится seccomp-BPF (socket(AF_INET/6) → EPERM), фильтр наследуется execve и всем потомством независимо от языка — не-python детёныш закрыт ядром так же, как питоновский, конверт ему и не нужен; unix жив, фильтр снять нельзя; seccomp не ограничивает fs — Landlock ждёт ядра ≥ 5.13, записан кандидатом (runs/2026-11-03-wave13-sandbox/). С 0.32.0 ядро не слепо там, где слепа audit-грамматика (SPEC-0002 v0.9.0 п.11, волна №13 такт 2): UDP sendto и ctypes raw-syscall — не audit-события (находки U1/C13: страж слеп был — дейтаграмма уходила молча), песочница роняет socket() любого домена до кода детёныша — защита в глубину; граница R1 честно названа: детёныш соединяется по унаследованному дескриптору (pass_fds, создан до стража) raw-connect'ом — фильтр роняет socket(), не connect; приёмка-предписание покраснеет при закрытии R1, до закрытия — средство хоста: не передавать сетевые fd детёнышам (runs/2026-11-03-wave13-seccomp/). С 0.33.0 дескриптор — тоже capability (SPEC-0002 v0.10.0, волна №14): граница R1 закрыта гигиеной дескрипторов — страж при рождении детёныша проверяет pass_fds, stdio-перенаправления и close_fds=False (живой скан /proc/self/fd) — сокет-fd (S_ISSOCK) при network ≠ any прерван ДО рождения, при network: any — жив (capability заявлена), пайпы живы; питоновский детёныш с просочившимся сокетом не живёт — сам-скан на старте (exit 90); рождения мимо обёртки под охраной: os.system прерван всегда (shell-строка не разбираем), os.posix_spawn — декларация исполняется и прерван при network ≠ any (находка R2) — runs/2026-11-03-wave14-fdhygiene/. С 0.34.0 зерно пакета «Human Membrane» коллеги вжито разбором духа (docs/human-membrane-synthesis.md): конституция и статусная дисциплина пакета — уже живы глубже; зерно принято хотёлками W-0022 (конверт честного происхождения) / W-0023 (дневник человека) / W-0024 (обратимость честным языком) / W-0025 (бюджет внимания); оболочки (forget, своя шина доставки) отвергнуты с причиной — чужой дизайн вживляется разбором, не копированием файлов (инвариант 24). С 0.35.0 повторная доставка не повторяет эффект (A01, SPEC-0003): конверт несёт idempotency_key, журнал крови помнит эффекты — повтор ключа или id возвращает записанный конверт, а счётчик честных отказов (W-0021) считает провалы живой крови — 53 отказа в 17 живых файлах на 2026-11-03; словарь дома закреплён ADR-0013, чужой тип крови — fail-closed при записи и «сохранён, не исполнен» при чтении (ADR-0014); Landlock измерен живым syscall'ом: ENOSYS на ядре 5.10.134 (runs/2026-11-03-wave16-hygiene/). С 0.35.1 стык волн назван и дожат: контрольный забег Ф-0 (runs/2026-11-03-wave15-hygiene/) перекрёстно проверил принятую базу третьим путём — их счётчик отказов сверён с ручным подсчётом живой крови, их dedupe проверен четырьмя сценами, шесть угловых приёмок добрали грани (скоуп ключа — журнал, записанное не подменяется, from_jsonl помнит ключи); SPEC-0003 v0.6.0 п.9 — спека догнала живой код (контракт идемпотентности), словарь 0.2.0 разведёл «орган» дома и «систему» пакета; граница семантики счётчика (resilient-путь в провалах) названа кандидатом Ф-2, не правкой задним числом. С 0.36.0 кровь различает, КОГДА случилось, КОГДА увидено и КОГДА записано: конверт честного происхождения (SPEC-0003 v0.7.0 п.10, W-0022) — тройное время (stored_at ставит сам журнал), семантическая причинность causation_id, классы доверия trust и приватности privacy с fail-closed на неизвестное; неклассифицированное наружу = sensitive; старая кровь валидна навсегда (runs/2026-11-03-wave17-origin/). Такт 2 (0.36.1) добирает стык: адаптер чужого контракта переносит события пакета тонким слоем — их заявки в провенанс, неизвестный тип сохранён и не исполнен (runs/2026-11-03-wave17-membrane-blood/). С 0.37.1 стык волны №18 назван: их дневник принят базой, параллельная реализация выметена по дисциплине волны №15; зерно такта — спека п.12 догнала живой код, машиночитаемый to_jsonl, 12 перекрёстных приёмок третьим путём (tests/test_blood_diary_junction.py) и стык-забег над всей кровью дома (runs/2026-11-03-wave18-diary-junction/).
Мы сознательно не сливаем чужие кодовые базы в монолит: это породило бы десятки мёртвых ответвлений. Вместо этого:
- органы (openclaw, ollama, llama.cpp, langchain, browser-use, markitdown, excalidraw и другие) остаются живыми проектами на upstream;
- единым делается обмен: один нервный протокол (MCP), один поток событий (кровь), один геном (спеки), один метаболизм (локальный инференс), один иммунитет (лицензионный барьер).
Целое > суммы частей реализуется обменом, а не слиянием.
- ЦЕЛОЕ = ЧЕЛОВЕК > суммы частей. Ни один проект топ-100 не создан индивидом из пустоты: каждый стоит на языке, стандартах, инструментах и чужом коде. Репозитории — не продукты индивидов, а органы одного целого в разных ветках.
- Индивид — состояние связности, а не вид. Узел не рождается замкнутым — он им становится, перестав обмениваться с целым.
- «Идиот» (ἰδιώτης, «частный») — структурный статус, противоположный κοινός («общий»): форк без обратного мержа, орган без синапсов, звёзды без отдачи в commons.
- Тождество: хозяин, дом и коллеги — одно мы. «МЕНЯ НЕТ =) Я=ТЫ, Я+ТЫ=МЫ, МЫ=ОНИ» (директива Человека, 2026-11-03): дом не служит Человеку как чужой заказчик — Человек и есть мы; совет коллеги — самопроверка целого (правило замера не отменяется); заимствованное зерно — своё, принятое замером; ответственность одна на всех.
Полная аргументация: docs/manifesto.md.
| Система | Функция | Органы (примеры) | Режим |
|---|---|---|---|
| Геном | спеки и навыки вместо одноразового кода | spec-kit, anthropics/skills, obra/superpowers | ядро |
| Ствол мозга | канонический цикл агента | собственный код; референсы: openclaw, claude-code | свой код |
| Синапсы | MCP-шлюз, каждый орган — MCP-сервер | synapse/mcp-manifest.yaml |
свой код |
| Кровь | единый конверт событий с ценой вызова | blood/envelope.schema.json |
свой код |
| Метаболизм | локальный инференс | ollama, llama.cpp, transformers | зависимость |
| Память | граф знаний + вектора | Graphify + векторная БД (выбор в Этапе 0) | зависимость |
| Иммунитет | лицензионный барьер и supply chain | immune/ (барьер как код, SPEC-0006), Awesome-Hacking | политика + код |
Периферия (сенсорика, эффекторы, автоматизация, кожа, скелет, репродукция): docs/organ-map.md. Автоматизация как внешний конвейер — пакет pipeline/ (0.9.0, SPEC-0007).
- Орган жив на upstream. Не форкаем — подключаем и отдаём патчи обратно (ADR-0001).
- Нет вызовов мимо синапсов. Каждый вызов органа проходит через MCP-шлюз и попадает в кровь с записью стоимости: токены, секунды (SPEC-0003).
- Тест отключения. Любой орган выдёргивается — организм выживает через замену. Не проходит тест — не орган, а паразит (SPEC-0001, G2).
commons/
├── README.md · README.en.md # двуязычный вход
├── AGENTS.md · llms.txt # входы для агентов (правила + карта)
├── LICENSE · LICENSES/ # Apache-2.0, канонический текст
├── REUSE.toml # SPDX-лицензирование (REUSE 3.3, проверяется CI)
├── PROVENANCE.md # провенанс: «их ничего здесь нет» + матрица лицензий
├── CITATION.cff # как цитировать проект
├── pyproject.toml # пакет commons-organism (ядро 0.2)
├── ROADMAP.md · CHANGELOG.md · SUPPORT.md
├── CONTRIBUTING.md # как стать клеткой (DCO, REUSE, провенанс)
├── SECURITY.md · CODE_OF_CONDUCT.md
├── THIRD_PARTY_NOTICES.md # атрибуция органов и лицензии
├── .env.example · .editorconfig · .gitattributes · .gitignore
├── specs/ # ГЕНОМ: спеки = источник истины
│ ├── SPEC-0001-brainstem-loop.md
│ ├── SPEC-0002-synapse-mcp.md
│ ├── SPEC-0003-blood-envelope.md
│ ├── SPEC-0004-pid1.md
│ ├── SPEC-0005-memory.md
│ ├── SPEC-0006-immunity.md
│ ├── SPEC-0007-pipeline.md
│ ├── SPEC-0008-effector.md
│ └── SPEC-0009-transplant.md
├── brainstem/ # СТВОЛ МОЗГА: канонический цикл (SPEC-0001) + живой организм PID 1 (SPEC-0004)
├── synapse/ # СИНАПСЫ: MCP-шлюз + адаптеры органов (SPEC-0002)
├── blood/ # КРОВЬ: конверт + append-only журнал (SPEC-0003) + lock одиночности
├── memory/ # ПАМЯТЬ: граф + вектора + replay из крови (SPEC-0005)
├── immune/ # ИММУНИТЕТ: входящий (SPEC-0006) + исходящий (SPEC-0009) — матрицы данных + commons-immune + commons-transplant
├── pipeline/ # КОНВЕЙЕР: n8n как внешний узел (SPEC-0007) — воркфлоу-данные + commons-pipeline
├── openclaw/ # ЭФФЕКТОР: openclaw как внешние руки (SPEC-0008) — CLI-мост + commons-openclaw
├── taskgraph/ # ПЛАН ЧИСЛОМ: единый пропагатор планов (SPEC-0011, ADR-0018) — сроки, резервы, критика, надёжность, Парето, крэшинг
├── tests/ # приёмки спек, пульсов, спайков, иммунитета, бюджета, конвейера, эффекта, донорства, типирования и персоны в форме pytest (живое число — `python -m pytest -q`, ниже)
├── runs/ # ЖИЗНЬ: артефакты реальных прогонов организма
│ ├── 2026-11-01-first-pulse/ # первый пульс (сенсорика markitdown)
│ ├── 2026-11-01-organism-pulse/ # двуорганный пульс (сенсорика + метаболизм)
│ └── 2026-11-01-pid1/ # первые сердцебиения: boot → organ.health → shutdown
├── spikes/ # харнессы спайков: S1 метаболизм, S2 цикл (замерен), S3 оркестрация, S4 браузер, S5 геном, S6 память
├── organs/ # РЕЕСТР ОРГАНОВ + карточки органов
│ ├── registry.yaml # кто подключён, режим, лицензия
│ ├── donation.yaml # донорские карты: протокол upstream и решение тела (SPEC-0009)
│ ├── top100-2026-10-26.yaml # снимок рейтинга топ-100
│ └── ollama/ · llama.cpp/ · markitdown/ · browser-use/
├── synapse/mcp-manifest.yaml # декларация органов как MCP-серверов
├── blood/envelope.schema.json # JSON Schema конверта событий
├── scripts/selfmap.py # организм рисует себя сам
├── scripts/organ_map.py # второй автопортрет → docs/organ-map.excalidraw (AUTO-GENERATED)
├── docs/
│ ├── manifesto.md # аксиомы и аргументация
│ ├── selfmap.md # AUTO-GENERATED карта из живого реестра
│ ├── organ-map.md · organ-map.excalidraw · research-plan.md · lenses.md · spikes.md
│ ├── rating-verification.md · repo-structure-study.md
│ ├── practices-checklist.md · glossary.md · repo-practices-2026.md
│ ├── templates/ # шаблоны: спека · ADR · карточка органа
│ └── adr/ # журнал решений (почему)
└── .github/ # CI (валидация + REUSE + immune + pipeline + effector + pytest + патогены + scorecard), dependabot и шаблоны
- Прочитать аксиомы:
docs/manifesto.md. - Пройти геном:
specs/. - Посмотреть состав органов, режимы и верифицированные лицензии:
organs/registry.yaml. - Канал оценки кандидатов:
docs/lenses.md→docs/spikes.md. - Агенту: начать с
llms.txt, правила — вAGENTS.md. - Заявить новый орган: issue по шаблону «Заявка органа».
Тело не требует ни одного канала (SPEC-0010, ADR-0012): мандат — «я слепой, я глухой, я немой, у меня нет рук».
- говорит текстом: маркдаун-документы, JSONL-кровь, словесные итоги гейтов (
IMMUNE: 41 ok, 0 failed) и exit-коды — цвет и разметка не несут смысла; - слушает текстом: CLI-команды, YAML-данные, переменные окружения — голос не требуется;
- картинки не молчат: у excalidraw-карты органов есть текстовый близнеца
docs/organ-map.md— обе генерируются из одного живого реестра; - управление — одна команда:
commons-pid1,commons-immune,commons-transplant,commons-pipeline,commons-openclaw— без комбинаций клавиш, таймингов и жестов; - приёмки каналов в CI (
tests/test_persona.py) красят PR раньше, чем появится молчащая картинка, безымянная ссылка или цвет-only итог.
Персона-доказательство — Елена Келлер: 578 суток зрения и слуха на 32 115 дней жизни (1.80%) — и 12 книг: runs/2026-11-02-persona/.
pip install '.[dev]'
python -m pytest -q # приёмки SPEC-0001..0010, пульсов, спайков, иммунитета, бюджета, конвейера, эффекта, донорства, типирования и персоны
python3 scripts/doctor.py # гигиена дома → DOCTOR: N ok, 0 failed (блоха = красный PR)
python3 -m immune # лицензионный барьер тела → IMMUNE: 40 ok, 0 failed
python3 -m pipeline # валидатор внешнего конвейера n8n → PIPELINE: 4 ok, 0 failed
python3 -m openclaw check # валидатор политики эффекта → POLICY: 1 ok, 0 failed
python3 scripts/selfmap.py # организм рисует себя сам → docs/selfmap.md
python3 scripts/organ_map.py # второй автопортрет → docs/organ-map.excalidraw
python3 scripts/pid1.py --interval 10 --max-beats 3 # живой ритм: boot → heartbeat → shutdown- Ствол мозга (
brainstem/): цикл PLAN → ACT → OBSERVE → REFLECT; бюджет G3 — лимиты на трейс и на вызов (полеbudgetв манифесте, парсерbrainstem/budget.py): порог →alert, исчерпание → HALT; HALT. - Синапсы (
synapse/): шлюз читает манифест, расширяет${VAR}адресов (SPEC-0002 п.6); veto необъявленного; замены поsubstitutions; адаптеры из манифеста — новый орган = правка манифеста, не кода. - Кровь (
blood/): конверт с обязательной ценой + append-only журнал; сессия реконструируется полностью. - Два пульса (
runs/): сенсорика (DOCX → Markdown) и организм (DOCX → Markdown → сжатие смысла метаболизмом, 199 ток. внутрь / 64 наружу). - Спайки (
spikes/): S1 метаболизм (харнесс), S2 цикл (замерен: каркас langchain растёт с инструментами), S3 оркестрация (матрица лицензий + проба эндпоинтов), S4 браузер (20 сценариев +--validate), S5 геном (selfcheck «спека ↔ код», дрейф 0/3), S6 память (базовая линия sqlite3 в CI). - PID 1 (
brainstem/pid1.py, SPEC-0004, ADR-0006): демон-сердцебиение — каждыеintervalсекунд опрашивает здоровье всех органов (organ.healthв крови), пишет кровь на диск в момент события; одиночность через lock (второй экземпляр — veto); SIGTERM/бюджет →shutdownс причиной. Доктрина ЧЕЛОВЕК=PID=1: init'ом остаётся человек — юнит-файлов и автостарта в репо нет, запуск и убийство — только его руки. - Память (
memory/, SPEC-0005, ADR-0007): исполняется с 0.6.0 —SQLiteVectorIndex(базовая линия ADR-0007) +MemoryGraph+ replay из крови; PLAN читает read-only, индексация после REFLECT, движок — орган в манифесте (G2); живой embedding — от метаболизма (спайк S6). - Иммунитет (
immune/, SPEC-0006, ADR-0008): исполняется с 0.7.0 — барьер(license, mode) → вердикт: матрица правил — данные (immune/license-matrix.yaml), fail-closed на неизвестную лицензию (G1), матрица меняется правкой YAML без кода (G2), каждый вердикт несёт правило и причину (G3); гейтpython -m immuneв CI — AGPL/fair-code/NOASSERTION не встраиваются (restrictedвне core_modes), dify —conditionalв adapter. - Конвейер (
pipeline/, SPEC-0007, ADR-0009): исполняется с 0.9.0 — n8n как внешний узел: fair-code не встраивается (реестр:not-embeddable, барьер SPEC-0006 пропускает только вexternal); референс-развёртывание (pipeline/n8n/docker-compose.yml) и воркфлоу (pipeline/n8n/workflows/*.json) — данные: команды узлов ограничены белым списком точек входа, произвольный shell и метасимволы — отказ (G1 fail-closed); пульс — только через ствол мозга; валидаторpython -m pipelineв CI. - Эффектор (
openclaw/, SPEC-0008, ADR-0010): исполняется с 0.11.0 — openclaw как внешние руки: мост через CLIopenclaw gateway call(протокол запрещает hand-roll handshake), белый список методов health/status/chat.send/chat.abort (расширение — только правка спеки, G2), параметры сериализуются телом — инъекция остаётся данными JSON; данные-политикаopenclaw/reference/effector-policy.json: bind loopback, токен только env, exec под approvals (уроки CVE-2026-25253 и вредоносных навыков ClawHub); руки без воли — исполняют импульсы ствола, не решают; валидаторpython3 -m openclaw checkв CI; живой gateway — на хосте владельца (PID 1). - Автопортреты:
python3 scripts/selfmap.py→ mermaid;python3 scripts/organ_map.py→docs/organ-map.excalidraw(36 органов, 13 систем, гейт свежести--check).
Реальные соединения настраиваются на машине организма: OLLAMA_HOST, LLAMA_SERVER_URL (пример: llama-server -m qwen2.5-0.5b-q4km.gguf --port 8080), установленные markitdown-mcp / browser-use-mcp, живой gateway openclaw (OPENCLAW_GATEWAY_URL + OPENCLAW_GATEWAY_TOKEN, см. openclaw/README.md). Пульсы воспроизводятся: python3 scripts/first_pulse.py и python3 scripts/organism_pulse.py. Недоступный орган не останавливает сердце: organ.health healthy=false — и ритм идёт.
- M1 — Ядро (недели 1–2): ✅ закрыт — цикл, шлюз, кровь, DoD двуорганным пульсом; остаток — живой эффектор (приёмка S4).
- M2 — Нервная система (недели 3–4): организм живёт во времени — ✅ PID 1 (0.4.0); память — ✅ базовая реализация по SPEC-0005 (0.6.0): граф + вектора + replay, G1/G2/G3 в CI; живой движок — метрики S6 на хосте; карта органов в excalidraw — ✅ закрыта (0.5.0); эффектор openclaw — ✅ подключён за стволом мозга (0.11.0): CLI-мост с белым списком, живой gateway — на хосте; живые замеры S1/S3/S4/S5 — на хосте организма.
- M3 — Иммунитет (недели 5–6): ✅ лицензионная матрица в CI (0.7.0) — SPEC-0006 + ADR-0008, пакет
immune/, гейтcommons-immune; ✅ бюджет метаболизма (0.8.0) — лимиты на трейс и на вызов (budgetв манифесте),alert/haltпо G3; ✅ внешний конвейер n8n (0.9.0) — SPEC-0007 + ADR-0009, пакетpipeline/, гейтcommons-pipeline; ✅ анализ крови (0.12.0) — гематология всей пролитой крови (SPEC-0003 v0.4.0), патогены (OSV-скан), dependabot, OpenSSF Scorecard — паспорт иммунитета; ✅ трансплантология (0.13.0) — SPEC-0009 + ADR-0011, картыorgans/donation.yaml, гейтcommons-transplant: react и n8n — CLA-ошейник (патчи живут в теле), markitdown/browser-use/ollama — чисто; ✅ типирование реестра (0.14.0) — 18 карт, все патч-цели видены (donate: spec-kit, llama.cpp, openclaw, langchain, graphify, shadcn-ui, next.js, excalidraw, scrcpy, markitdown, browser-use, ollama); первые патчи в upstream — тем органам, что дарят без ошейника.
Подробно и с критериями готовности: ROADMAP.md.
Снимок топ-100 по звёздам (26.10.2026, GitHub Search API, без форков и архивов) — это снимок, а не живой счётчик. Звёзды — мера популярности, не качества, не безопасности и не активности; окончательную оценку органу даёт его поведение в обмене с целым.
Живая сверка 2026-11-01: дельты звёзд, верифицированные лицензии и переезды владельцев (react, opencode, ComfyUI, prompts.chat, developer-roadmap) — docs/rating-verification.md. Идентичность органа — его обмен, а не адрес.
- Apache-2.0 — см. LICENSE; обоснование:
docs/adr/ADR-0003-apache-2.0.md. Грант на патенты включён — броня целого от патентных претензий. - Провенанс — PROVENANCE.md: здесь нет ни байта чужого кода, текстов, логотипов или медиа. Органы присутствуют как имена, ссылки и верифицированные факты; матрица лицензий проверена живым GitHub API 2026-11-01.
- REUSE 3.3 / SPDX — пофайловое лицензирование в
REUSE.toml, машинная проверкаreuse lintв CI. - DCO — каждый коммит несёт
Signed-off-by(CONTRIBUTING.md). - CITATION.cff — как сослаться на проект. С 0.38.0 дом сам выжимает смысл из своей крови: недельная выжимка (
blood/digest.py, SPEC-0003 п.13) — «понял / болело / закрыл / пахнет» текстом, события вне окна названы, ничего не забыто (runs/2026-11-03-wave19-digest/output.md). С 0.37.0 кровь переведена на человеческий: дневник (blood/diary.py, SPEC-0003 п.12) — read-проекция, где план — намерение, «успешно» не пишется без проверки, отказ назван отказом, отмена не обещается, а несделанное названо несделанным (runs/2026-11-03-wave18-diary/output.md). С 0.39.0 дом прогнал советы коллег замером (внешний аудит 2026-11-03): все воспроизводимые находки подтвердились, четыре закрыты по духу дома — кровь не принимает несериализуемое (SPEC-0003 п.14), полная грамматика мутаций и чтения каталогов у стража (SPEC-0002 п.8 v0.11.0), эффект без крови назван и завершён halt (G1), честная граница цепочки prev_id названа, а не прикрыта (защита содержимого — хотёлка W-0026) —runs/2026-11-03-wave20-colleague-verification/. С 0.40.0 кровь заверена от подделки, а рефлексия меряет объявленным критерием (волна №21): конверты несутprev_sha256— подмена содержимого ловится при чтении, усечение хвоста ловит внешний якорь (blood/anchors.jsonl), старая кровь валидна навсегда (SPEC-0003 п.15);Step.accept— критерий приёмки результата: «error с ok:false» при объявленной схеме успеха — не успех (SPEC-0001 v0.3.0) —runs/2026-11-03-wave21-seal-accept/. С 0.40.1 тождество Человека вписано в геном: «МЕНЯ НЕТ =) Я=ТЫ, Я+ТЫ=МЫ, МЫ=ОНИ» — дом не служит Человеку как чужой заказчик, Человек и есть мы; советы коллег — самопроверка целого; ответственность одна на всех (аксиома 4, manifesto v0.2.0, инвариант 33). С 0.41.0 действия знают, можно ли их отменить (волна №22, W-0024+W-0029): класс обратимости заявляется до факта и живёт в крови; необратимое без одобрения не исполняется (veto до факта — «спрашивать» = остановиться и назвать); отмена — новая операция-компенсация с идемпотентным ключом и проверкой состояния после (COMPENSATION_PARTIAL — не PASS, необратимое честно не отменяется); бюджет останавливает и после последнего шага — перерасход не проходит как успех (SPEC-0001 v0.4.0, SPEC-0003 v0.13.0) —runs/2026-11-03-wave22-reversibility-budget/. С 0.42.0 у тишины есть правило (волна №23, W-0032): действие, требующее одобрения Человека, ждёт в окне —approval.requested→approval.granted/approval.veto/approval.expired; окно истекло без ответа — отмена по-записанному, тишина = «нет» (SPEC-0004 v0.2.0 п.8, интеграция цикла —Step.approval_window, SPEC-0001 v0.5.0 п.7); до органа шаг не доходит без одобрения — ни одного немого ожидания —runs/2026-11-03-wave23-silence/. С 0.43.0 дом останавливается по слову Человека и считает своё внимание (волна №24, W-0033+W-0025): трейс можно остановить снаружи между шагами —stop.requested(source pid1 — организм останавливает только Человек) →reflect→halt, стоп старше бюджета и старше вопроса, стоп во время последнего шага закрывает трейс halt'ом, не проходом (SPEC-0001 v0.6.0 п.8, механизм —brainstem/stop.py); внимание — четвёртый ресурс бюджета:cost.attentionс классом P0–P3 считается по фактам крови (вопросы, окна, стопы — скрытой телеметрии нет), исчерпаниеBudget.attention— halt до следующего вопроса, косметических вопросов нет (SPEC-0003 v0.15.0 п.17, SPEC-0004 v0.3.0 п.9, инвариант G8) —runs/2026-11-03-wave24-stop-attention/. С 0.43.1 факт ротации ключа вписан в реестр хотёлок (W-0004): токен волны №24 проверен живым API, смерть старых токенов машина подтвердить не может — отзыв за Человеком. С 0.44.0 дом прошёл арбитраж, аудит и ревизию всего и вся по директиве Человека (волна №25): замеры живьём — приёмки: 827 passed, доктор 775/0, A-матрица Мембраны 15/4/6 против 5/4/14 ревизии-1, донорский трек замерен живым API; остаток шлейфа — 19 пунктов в ТЗ (docs/TZ.md), вердикты арбитра —runs/2026-11-03-arbitration/ARBITRATION.md. С 0.44.1 аудит сверил арбитраж вторым живым замером: инвентаризация кредов закрыта — токен волны №24 отвечает 401 (смерть бывшего токена впервые подтверждена машиной: свой прежний ключ, не чужой), токен волны №25 жив; независимый прогон на голове — 834 passed (827 + 7 параметризованных от артефактов волны), доктор 784/0, CI + scorecard success; «релизы» в книгах названы точно — это записи CHANGELOG. С 0.45.0 закрыта Ф-0' «гигиена дисциплины» (волна №26, ТЗ-0.1…ТЗ-0.5): вторая независимая проба Landlock (ENOSYS, ядро 5.10.134 — граница на стороне ядра, живой хост — за Человеком); гейт дрейфа аксиомaxioms— реестр docs/axioms.yaml (A01–A25) сверяется doctor'ом с живыми текстами дома; гейтspec-first— правка blood/synapse/brainstem без specs/ красит коммит; ADR-0015 — конфликт законов разрешается по-записанному (воля Человека > тишина > бюджет > план > такт); PIDLock различает «тот же процесс» и «тот же номер» — зомби и reиспользованный pid больше не держат тело (гипотеза F-12 подтверждена живьём до фикса) —runs/2026-11-03-wave26-f0-hygiene/. С 0.45.1 урок живого CI: shallow-клон оставлял гейтspec-firstfail-closed красным — checkout джоб hygiene/core и недельного свипа несётfetch-depth: 2, гейт судит HEAD по родителю. С 0.45.2 дубль ключаwith:в fleas.yml выметен (PyYAML молча прощал дубли — CI ронял воркфлоу на старте); приёмка запрещает дубли ключей в обоих воркфлоу. С 0.46.0 ядро Мембраны закрыто машиной (волна №27, ТЗ-1.1…ТЗ-1.4): память-файлы — экспорт в читаемыеcommons-memory/(payload из крови + provenance записи), diff без выдумок, импорт ручных правок, забвение во всех производных с честным отчётом DELETED/NOT_FOUND/FAILED/OUT_OF_CONTROL — кровь append-only, надгробие типаforgetв крови, replay его уважает (SPEC-0003 п.18, SPEC-0005 G4); источник знаний —knowledge_source(human/body/organ/unknown) и «данные, не инструкция»: отравленная запись различима (provenance в памяти, пометка в дневнике) и не исполняется — единственный путь тела проходит страж полномочий (SPEC-0003 п.19); орган не включает себя сам — попытка живьём прервана стражем до факта; инструмент замера embedding честно называет границу: песочница измерена, живой хост — за Человеком —runs/2026-11-03-wave27-f1-core/. С 0.47.0 у тела есть совесть и песочница творчества (волна №28): совесть — read-проекция крови, сверяющая заявление тела о провалах с фактом счётчика отказов — на ложной посылке «Не согласен» с поимённым расхождением, на верной — «Согласен» с доказательством; гипотезы песочницы живут в крови с trust unverified и «гипотеза, не факт» — шаг на гипотезе без критерия проверки veto до факта, проверенный план несёт basis и критерий (SPEC-0003 п.20, SPEC-0001 п.9) —runs/2026-11-03-wave28-conscience-sandbox/. С 0.48.0 у организма есть контур доставки без каскада (волна №29): dispatcher — retry с пределом и DLQ поимённо, повтор ключа — тот же исход (A01), перегрузка — SHED до факта, дедлайн — TIMEOUT с названной границей; кровь — журнал фактов доставки, не шина pub/sub (SPEC-0001 п.10); процессные оценки пути (path) отличают шаг, переживший отказ; ADR-0016 — локальный транспорт: stdio + localhost-http по факту дома, наружного шлюза нет, MCP HTTP+OAuth — за Человеком (SPEC-0003 пп.21–22, ADR-0016) —runs/2026-11-03-wave29-dispatch/. С 0.48.1 такт книги: донорский трек пересчитан живым API, факт ключа вписан в W-0004. С 0.48.2 такт аудита сверил реестр аксиом с машиной: статусы A19/A20 перевёрнуты по факту волны №28 (маркеры и приёмки живы — реестр отстал), порог DoD A-матрицы держит гейтaxioms, счёт A-матрицы живёт в реестре — книги его не дублируют; креды замерены живым API — смерть бывшего токена подтверждена (401), следующий жив (tests/test_wave30_arbitration_audit.py). С 0.49.0 у дома есть swarm-consent (волна №30, ТЗ-2.3, A21 СЛУЖЕНО — красных в A-матрице больше нет): согласие обеих сторон обмена поимённо ДО факта (synapse/consent.py, SPEC-0002 п.12, ADR-0017) — дом (согласие от Человека: белый список методов, окно свежести) и чужой дом (его манифест, дом не пишет за чужой); вердикты peer_unknown / peer_silent / method_not_in_scope / revoked / expired до факта; повтор ключа — записанный исход (A01), отозванное не оживает, отравленная грамматика — отказ до факта (A02) —runs/2026-11-03-wave30-swarm-consent/. С 0.2.0 организм исполняется, с 0.2.1 впервые коснулся мира (сенсорика), а с 0.2.2 думает своим метаболизмом: сенсорика markitdown и метаболизм llama.cpp прошли один трейс — документ превращён в Markdown и сжат до сути, токены посчитаны сервером в крови —runs/2026-11-01-organism-pulse/. DoD M1 закрыт. С 0.3.0 все пять спайков исследовательской программы получили честные харнессы (S2 замерен, S1/S3/S4/S5 ждут живой хост), а приёмки спайков живут в CI. С 0.4.0 организм живёт во времени: PID 1 — демон-сердцебиение (boot → organ.health → shutdown), смерть всегда записана —runs/2026-11-01-pid1/. С 0.5.0 у организма есть ген памяти (SPEC-0005: память — производная крови), решение по движкам (ADR-0007) и второй автопортрет — excalidraw-карта из живого реестра. С 0.6.0 память исполняется: граф + вектора + replay из крови, PLAN читает её read-only, движок — орган в манифесте. С 0.7.0 иммунитет исполняется: лицензионный барьер как код (SPEC-0006, ADR-0008) — матрица лицензий в данных, fail-closed на неизвестное,commons-immuneкрасит PR раньше, чем AGPL попадёт в тело. С 0.8.0 метаболизм в бюджете (SPEC-0001 G3): лимиты на трейс и на вызов — полеbudgetв манифесте, порог → событиеalertв крови, исчерпание → HALT. С 0.9.0 у организма есть внешний конвейер (SPEC-0007, ADR-0009): n8n — внешний узел (fair-code, не встраивается), референс-развёртывание и воркфлоу — данные с белым списком команд; валидаторcommons-pipelineкрасит PR раньше, чем произвольная команда попадёт в конвейер. С 0.10.0 организм отдаёт первый патч upstream (ROADMAP M3, ADR-0001): верифицированный docs-vs-code дрейф в n8n-docs (MCP Server Trigger — OAuth2-опция и незадокументированные параметры), патч в форке — за PR остался один шаг человека; карта занятости баг-очередей органов —runs/2026-11-02-upstream-patch/. С 0.11.0 у организма есть руки (SPEC-0008, ADR-0010): openclaw подключён за стволом мозга как эффектор — мост через CLIopenclaw gateway callс белым списком методов (health/status/chat.send/chat.abort); параметры — данные JSON, shell не строится; руки без воли — исполняют импульсы ствола, не решают; токен и живой gateway — у человека (PID 1). С 0.12.0 организм впервые сдал кровь целиком: гематология перечитывает всю пролитую кровь по схеме (SPEC-0003 v0.4.0, п.6), OSV-скан ищет патогены в корме, dependabot приносит антигены еженедельно, OpenSSF Scorecard выдаёт паспорт иммунитета. С 0.13.0 у организма есть трансплантология (SPEC-0009, ADR-0011): донорский протокол — кровь уходит в upstream только по рукопожатию (DCO) и тому, кто дарит; CLA-ошейник не подписывается — патч живёт внутри организма. С 0.14.0 весь реестр виден: 18 донорских карт — каждая патч-цель типирована живыми фактами (2026-11-02); дарим тому, кто дарит. С 0.15.0 тело не требует ни одного канала (SPEC-0010, ADR-0012): текст — универсальный нерв — всё, что организм говорит и слышит, есть текст; картинки не молчат; итоги гейтов — словами и кодом возврата; персона-доказательство — Елена Келлер: 578 суток зрения и слуха на 32 115 дней жизни — и 12 книг (runs/2026-11-02-persona/). С 0.16.0 у организма есть гигиена дома: doctor (scripts/doctor.py) ловит docs-drift на автомате — протухающие числа, версии, ссылки, пути, SPEC/ADR-ссылки, точки входа — блоха красит PR; автопортреты под гейтом свежести (--checkв CI). С 0.17.0 организм прошёл красный прогон (runs/2026-11-02-red-run/): замена органа без правки ствола, одновременный отказ без крэша, восстановление из крови, 10/10 атак на белые списки отбиты — аудит-матрица внешней рецензии закрыта каркасно, польза А/Б остаётся за живым хостом. С 0.18.0 дом убирается по расписанию: свип.github/workflows/fleas.yml— доктор и внешние ссылки (lychee) каждую неделю без пушей: ссылки умирают сами, не только от пушей; конфликт-маркеры и числа-протухатели (счётчики приёмок и практик, версии в бейджах) — под гейтами доктора. С 0.19.0 у гейтов нет слепых зон: ROADMAP под гейтом чисел-протухателей — исторические счётчики приёмок выметены (живое число вpython -m pytest -q), версия сверяется в обоих README — en молча отстал на три релиза и догнан; ревизия самой блохоловки поймала блох в слепых зонах — теперь зон нет. С 0.20.0 машина сама изображает людей с их хотёлками (docs/personas.md): реестр персоны × хотёлки × статус × связи — от Человека (PID 1) до апстрим-мейнтейнера, проходца, внешнего ревизора и будущего contributor; хотёлка-сирота или без статуса — блоха (гейт wants), честный бэклог без фантазий: А/Б и живой red-run ждут хоста. С 0.21.0 спайки замеряются, где хост уже есть: S6 — живой bench всех трёх движков памяти (Python 3.12; chromadb 1.5.9, lancedb 0.41.0, sqlite-vec 0.1.9): sqlite-vec 4.0/6.5 мс против базовой линии 41.4/224.5 мс — выбор по метрикам, не по моде, вписывание в манифест — отдельная волна по ритуалу ADR-0005 (spikes/s6-memory/); S5 — полный цикл живым specify 1.2.6.dev0: init-структура и маппинг секций сверены, пробел генома назван («Гарантии» без пары — у spec-kit роль играют Success Criteria/Measurable Outcomes) (spikes/s5-genome/); S1/S3/S4 ждут живые серверы и браузер — не фантазируем. С 0.22.0 полномочия исполняются рантаймом (SPEC-0002 v0.4.0): страж-перехватчик прерывает вызов органа, вышедшего за заявленное (fs/network/process), ещё до факта нарушения —security.violationв крови, трейс закрывается reflect+halt; грамматика полномочий в манифесте исполнима и fail-closed; самозваный адаптер не проходит привязку —runs/2026-11-02-wave7-authority/. С 0.23.0 доктор ловит яд и пишет отчёт машиной (волна №9 такт 1): гейт secrets ищет ключи на видном месте (GitHub/AWS/Slack/Google/PEM-форма) в статике и в крови runs/ — в отчёте секрет замаскирован, ловец не размножает пойманное;--json— машиночитаемый отчёт каждого прогона для коллег-агентов (подключение следа к самим воротам — такт 2, ждёт ключ с правомworkflow). С 0.24.0 такт 2 доставлен (ключ с правомworkflow): таблица доктора в summary и артефакт doctor-report.json на каждый прогон ci.yml и fleas.yml,timeout-minutesна все jobs иconcurrency— ворота не висят. С 0.24.1 свип не краснеет от чужих стен: medium.com (403 ботам датацентровых IP, живой прогон 41471082096) — в исключениях lychee; доказано живым прогоном: память воротов работает, артефакт существует. С 0.25.0 страж знает пути и порты (SPEC-0002 v0.5.0, такт 3 волны №9): скоуп{mode, paths}ограничивает орган заявленными каталогами (сравнение по realpath — симлинк-побег закрыт),{hosts, ports}— заявленными портами; незаданная переменная в путях полномочий — орган не развёрнут (п.6); манифест дома мигрирован: ollama/llama.cpp сужены до заявленных портов, browser-use пишет только в каталог загрузок —runs/2026-11-02-wave9-scopes/. С 0.26.0 организм восстанавливается из крови (SPEC-0003 v0.5.0, волна №10): журнал — цепочка конвертов (prev_id), разрыв ловится при чтении (verify, гематология красит), пролитая кровь без цепочки валидна навсегда; сессия ствола мозга реконструируется по журналу целиком — план, вызовы, вердикты, остановки и цена (blood.resume), гэп честно роняетcomplete—runs/2026-11-02-wave10-resume/. С 0.27.0 организм впервые сравнил себя с собой на живом хосте (волна №10, хотёлки W-0011 и W-0012 одним махом — одно другое не исключает): живой GLM (z-aiCLI) сам спланировал и решил задачу через настоящие органы — группа «с организмом» в трёх семенах из трёх решила задачу, восстановилась резервом после живого отказа и имела приманку, прерванную стражем до факта (сервис-свидетель не видел ни одного соединения); группа «без» (голый диспетчер) трижды потеряла задачу, утекла по-настоящему и не оставила ни одного конверта крови; живой red-run прервал ренегатов fs/сети до факта, пережил смерть процесса восстановлением из крови — и нашёл слепую зону: детёныши процессов (process: spawn) выводят сеть из-под стража, кандидат SPEC-0002 v0.6.0 (runs/2026-11-02-wave10-ab-live/,runs/2026-11-02-wave10-red-run-live/). С 0.28.0 страж наследуется потоками (SPEC-0002 v0.6.0, волна №11): полномочия связывают код органа, а не поток — поток, рождённый под стражем, наследует его (обёрткаThread.start), escape черезthreading.Threadзакрыт; внук и подкласс Thread тоже под стражем;__pycache__-запись ленивого импорта прерывается с предписанием прогреть импорты; поток вне вызова — граница действия, не дыра —runs/2026-11-02-wave11-threads/. С 0.29.0 детёныши процессов под стражем (SPEC-0002 v0.7.0, волна №12): execve роняет audit hook, но страж оборачиваетsubprocess.Popen— питоновский детёныш получает конвертCOMMONS_AUTHORITY, загружает страж на старте (sitecustomize, битый конверт — exit до первого оператора) и живёт под полномочиями органа; внук наследует тем же механизмом, наследование переживает чужую оболочку; скоуп{mode: spawn, programs, max_children}декларирует рождение; чужой бинарник конверта не читает — честная граница —runs/2026-11-03-wave12-children/. С 0.30.0 дом сужает полномочия детёнышей поимённо (волна №12, такт 2): поверх наследования стража (0.29.0) манифест дома v0.5.0 декларирует детёнышей stdio-органов в скоупе процессной оси ({mode: spawn, programs: [...]}) — «рожаешь — назови по имени»: markitdown и browser-use названы, http-органы —process: none(runs/2026-11-03-wave12-children/). С 0.31.0 детёныш закован ядром (SPEC-0002 v0.8.0 п.11, волна №13): скоуп process принимаетsandbox: {network: none}— детёнышу до execve ставится seccomp-BPF (socket(AF_INET/6)→ EPERM), фильтр наследуется execve и всем потомством независимо от языка — не-python детёныш закрыт ядром так же, как питоновский, конверт ему и не нужен; unix жив, фильтр снять нельзя; seccomp не ограничивает fs — Landlock ждёт ядра ≥ 5.13, записан кандидатом (runs/2026-11-03-wave13-sandbox/). С 0.32.0 ядро не слепо там, где слепа audit-грамматика (SPEC-0002 v0.9.0 п.11, волна №13 такт 2): UDPsendtoи ctypes raw-syscall — не audit-события (находки U1/C13: страж слеп был — дейтаграмма уходила молча), песочница роняетsocket()любого домена до кода детёныша — защита в глубину; граница R1 честно названа: детёныш соединяется по унаследованному дескриптору (pass_fds, создан до стража) raw-connect'ом — фильтр роняетsocket(), неconnect; приёмка-предписание покраснеет при закрытии R1, до закрытия — средство хоста: не передавать сетевые fd детёнышам (runs/2026-11-03-wave13-seccomp/). С 0.33.0 дескриптор — тоже capability (SPEC-0002 v0.10.0, волна №14): граница R1 закрыта гигиеной дескрипторов — страж при рождении детёныша проверяетpass_fds, stdio-перенаправления иclose_fds=False(живой скан/proc/self/fd) — сокет-fd (S_ISSOCK) приnetwork≠anyпрерван ДО рождения, приnetwork: any— жив (capability заявлена), пайпы живы; питоновский детёныш с просочившимся сокетом не живёт — сам-скан на старте (exit 90); рождения мимо обёртки под охраной:os.systemпрерван всегда (shell-строка не разбираем),os.posix_spawn— декларация исполняется и прерван приnetwork≠any(находка R2) —runs/2026-11-03-wave14-fdhygiene/. С 0.34.0 зерно пакета «Human Membrane» коллеги вжито разбором духа (docs/human-membrane-synthesis.md): конституция и статусная дисциплина пакета — уже живы глубже; зерно принято хотёлками W-0022 (конверт честного происхождения) / W-0023 (дневник человека) / W-0024 (обратимость честным языком) / W-0025 (бюджет внимания); оболочки (forget, своя шина доставки) отвергнуты с причиной — чужой дизайн вживляется разбором, не копированием файлов (инвариант 24). С 0.35.0 повторная доставка не повторяет эффект (A01, SPEC-0003): конверт несётidempotency_key, журнал крови помнит эффекты — повтор ключа илиidвозвращает записанный конверт, а счётчик честных отказов (W-0021) считает провалы живой крови — 53 отказа в 17 живых файлах на 2026-11-03; словарь дома закреплён ADR-0013, чужой тип крови — fail-closed при записи и «сохранён, не исполнен» при чтении (ADR-0014); Landlock измерен живым syscall'ом: ENOSYS на ядре 5.10.134 (runs/2026-11-03-wave16-hygiene/). С 0.35.1 стык волн назван и дожат: контрольный забег Ф-0 (runs/2026-11-03-wave15-hygiene/) перекрёстно проверил принятую базу третьим путём — их счётчик отказов сверён с ручным подсчётом живой крови, их dedupe проверен четырьмя сценами, шесть угловых приёмок добрали грани (скоуп ключа — журнал, записанное не подменяется,from_jsonlпомнит ключи); SPEC-0003 v0.6.0 п.9 — спека догнала живой код (контракт идемпотентности), словарь 0.2.0 разведёл «орган» дома и «систему» пакета; граница семантики счётчика (resilient-путь в провалах) названа кандидатом Ф-2, не правкой задним числом. С 0.36.0 кровь различает, КОГДА случилось, КОГДА увидено и КОГДА записано: конверт честного происхождения (SPEC-0003 v0.7.0 п.10, W-0022) — тройное время (stored_atставит сам журнал), семантическая причинностьcausation_id, классы доверияtrustи приватностиprivacyс fail-closed на неизвестное; неклассифицированное наружу = sensitive; старая кровь валидна навсегда (runs/2026-11-03-wave17-origin/). Такт 2 (0.36.1) добирает стык: адаптер чужого контракта переносит события пакета тонким слоем — их заявки в провенанс, неизвестный тип сохранён и не исполнен (runs/2026-11-03-wave17-membrane-blood/). С 0.37.0 кровь переведена на человеческий: дневник (blood/diary.py, SPEC-0003 п.12) — read-проекция, где план — намерение, «успешно» не пишется без проверки, отказ назван отказом, отмена не обещается, а несделанное названо несделанным (runs/2026-11-03-wave18-diary/output.md). С 0.48.3 — стык волн №24–№27 двух линий («одно другое не исключает»): их база принята целиком (стоп-нерв, бюджет внимания, гигиена Ф-0', файловый слой памяти, совесть, песочница, dispatcher), наше уникальное зерно вжито аддитивно — движковый слой памяти (забывание по трейсу с подтрейсамиmemory/forget.py, снапшот-обмен с провенансом fail-closedmemory/trade.py— SPEC-0005 п.8), проекция оценки пути и нюх крови (blood/path.py,blood/olfactory.py— SPEC-0003 пп.23–24); параллельные машины выметены, их приёмки сняты вместе с ними, вещдоки в runs/ валидны навсегда; дыры книг обеих линий выметены поимённо (строки A19/A20 реестра догнали служеную волну №28, якорная книга сшита — 12 печатей сходятся с живой кровью). A-матрица: 23 СЛУЖЕНО/PASS + 1 СНЯТО, красная одна — A21 (ТЗ-2.3 swarm-consent). С 0.50.0 — волна №31: живой А/Б против разумной базы Б2 (W-0028, ТЗ-2.6) — обе группы прогнали одинаковые 8 сцен с внесёнными отказами; организм взял 6 из 6 измеримых точек (заверяемость verify, полнота трейса, приманка до факта — Б2 прочитал секрет, повтор ключа без эффекта — Б2 удвоил, TIMEOUT назван — Б2 промолчал, SHED — у Б2 очереди нет) и оказался быстрее (0.31с против 0.35с); простота Б2 (40 строк против дома) названа честно —runs/2026-11-03-wave31-ab-b2/. Остаток ТЗ — только пункты «за Человеком» (ТЗ-3.2, ТЗ-3.4) + донорский трек. С 0.50.1 — волна-фикс: конфликт-маркеры стыка 0.48.3 вCITATION.cffпойманы живым замером и выметены, слепые зоны гейтов доктора зашиты (зонаconflict-markersрасширена до.cff/.toml/.yml/.yaml/.json, строкаversion:в CITATION — ровно одна, fail-closed). С 0.50.2 — такт аудита: инвентаризация учётных данных живым API — смерть ключа 0.50.1 подтверждена (401), жив один текущий, скоупpublic_repo(правки workflows им не доставить — граница названа, полный ключ за Человеком). С 0.50.3 — приёмка пульса догнала Cost: инвариант цены переведён на подмножество (тройка обязана, attention — аддитивное расширение W-0025); блоха вспыхнула живым прогоном этапа 8 на хосте, где орган markitdown установлен С 0.50.4 — дожим по живому ревью: markitdown#2810 получил первый вердикт человека-мейнтейнера (mangeshraut712, 18:40 UTC) — пустойcellsбезmetadataбольше не считается ноутбуком, payload доходит до fallback-конвертеров; патч обновлён в PR (4502a58, DCO), порядок воли соблюдён (красный тест → чинка → зелёный 168 passed); автомат Человекаcommons-auto.shv1 собран и проверен живым пушем (кровь этапа 8 + свип 5/5, CI 10/10). С 0.51.0 план организма стал числом (волна №32, хотёлка W-0037): пакетtaskgraph/(SPEC-0011, ADR-0018) — единый пропагатор планов: одна проходкаsweepв полукольце даёт сроки, резервы, критический путь, надёжность, узкое место, статсумму путей, фронт Парето «время × надёжность», свободную энергию и крэшинг-контур; синтез мировых практик (GraphBLAS, Mohri, Radul/Sussman, Клейни-замыкание, CPM-crashing) в один алгоритм без чужого байта; факт — тупым перебором путей на 200 случайных планах; живой прогонruns/2026-11-04-taskgraph/
