Кратко

  • Устав CPC устанавливает, что с осеннего избирательного цикла 2026 года раздельные голосующие представители не-Impact-проектов и Regular Members будут заменены не более чем пятью Community Voting Members.
  • Наблюдение за заседанием, статус Regular Member, включение в электорат и занятие голосующего места — разные факты. Кандидат Community Voting Member должен быть Regular Member и не должен одновременно быть голосующим представителем Impact-проекта.
  • Переходный реестр должен отдельно фиксировать состояние цикла, прежнее место, право на участие, знаменатель электората, результат, ограничение по работодателю и компетенции Board, CPC и проектов; он не должен выдавать будущий план за завершённые выборы или внутреннее участие за всеобщий мандат.

Запланированное правило — не уже сложившийся состав

В организации свободного программного обеспечения нормативный текст может стать публичным раньше, чем возникает регулируемый им факт. В уставе появляется новая категория, заседание открыто для наблюдателей, в репозитории указан будущий класс. Это существенные сведения. Но они не удостоверяют начало выдвижения, проверку списка избирателей, подсчёт голосов или вступление конкретного человека в должность.

Устройство OpenJS позволяет удержать это различие. Устав называет Cross Project Council, CPC, техническим руководством Foundation, а Board — её деловым руководством. Board задаёт общую политику CPC; CPC действует как делегированный технический орган в её рамках. Тем же текстом предусмотрено, что осенью 2026 года два самостоятельных не-Impact пути к голосованию будут сведены к классу Community Voting Members.

Это подтверждает намечённую реформу, а не её результат. Проверенные публичные материалы не сообщают, что выдвижение уже открылось, что утверждён перечень кандидатов, что заполнены все пять мест, что опубликован подсчёт или что какой-либо человек уже занял новое место. Описывать правило будущего времени как действующий состав значит заменять источник предположением.

После перехода участник должен иметь возможность восстановить картину без рассказа инсайдера. Предыдущий представитель завершил срок, ушёл, был заменён, остался только Regular Member или выдвинулся в новый класс? Сколько из максимум пяти мест реально занято? Сколько Impact Project Voting Members и Regular Members имели право голоса на соответствующую дату? На каком полном составе проверялось правило, по которому у одного работодателя не может быть более четверти Voting Members? Кому принадлежало интересующее решение — Board, CPC или самоуправляемому проекту?

Это не обвинительные вопросы. Это минимальные столбцы, без которых позднее изменение списка имён легко принять за незафиксированную передачу полномочий.

Четыре разных статуса за словом «сообщество»

Устав различает Observers, Regular Members и Voting Members. Публичный репозиторий CPC разрешает не-членам присутствовать на заседаниях как наблюдателям. Документ Governance описывает, как активный OpenJS Collaborator с недавней и устойчивой работой может запросить статус Regular Member. Для выборов Community Voting Members круг ещё уже: электорат составляют Impact Project Voting Members и Regular Members.

Observer может присутствовать на открытой части работы и участвовать в поиске консенсуса. Это подлинное участие, но не автоматическое право быть включённым в бюллетень или занимать голосующее место.

Regular Member имеет более определённый институциональный статус. Правила требуют недавней постоянной активности в проекте, сообществе, пространстве сотрудничества или работе CPC и предусматривают проверку заявки. Такой статус нужен для кандидатуры и входит в электорат нового класса, но сам по себе не подтверждает избрание.

Impact Project Voting Member получает место из другого источника. Каждый Impact-проект может по своей процедуре назначить до двух представителей. Этот класс сохраняется в новой схеме. Участие его членов в выборе Community Voting Members не превращает их собственные места в места сообщества.

Community Voting Member — определённый для будущего цикла класс с максимум пятью местами. Кандидат обязан быть Regular Member и не быть голосующим представителем Impact-проекта. Поэтому фраза «сообщество выбрало» может скрывать четыре разных утверждения: кто присутствовал, кто получил статус Regular Member, кто мог голосовать и кто действительно получил место. Устав заранее задаёт границы; избирательная запись должна доказать остальные факты.

Здесь уместна дисциплина Лy Хэна: участие даёт знание, предупреждение и возражение, но само по себе не создаёт полномочия принципала над всеми, кого затрагивает решение. Открытое заседание CPC и внутренние выборы служат доказательством определённой процедуры внутри Foundation, а не мандата представлять всю экосистему JavaScript.

Новое место не поглощает другие полномочия

Смена класса не перестраивает автоматически всю власть вокруг CPC. Voting Members несут окончательную ответственность по тем вопросам CPC, которые им поручены Уставом. CPC стремится к lazy consensus и использует установленную процедуру голосования, когда возражения нельзя снять. Board сохраняет общую политику, особенно юридические полномочия, и участие в утверждении изменений Устава. Проекты остаются самоуправляемыми в своих документированных технических процессах в пределах руководства CPC.

Между уровнями есть связи, но нет тождества. CPC Director может представлять проекты и связанные сообщества перед Board. Изменение хартии проекта может потребовать одобрения CPC. Технический вопрос иногда передаётся Board. Однако Community Voting Member из этого не становится автоматически Board Director, представителем всех сопровождающих или внутренним решающим лицом отдельного проекта. В реестре должна быть названа фактическая роль.

Нынешняя процедура уже оставляет несколько следов: публичный issue в первый день номинации, pull request для обновления README после выборов, частное сообщение о результате, повестки и материалы заседаний. При этом есть законные закрытые границы для персональных, юридических и части Board-вопросов. Прозрачность не требует публиковать каждое частное дело; она требует связать решающие публичные факты.

Одно новое имя в README не сообщает срок, исход прежнего места или знаменатель электората. Governance указывает, что Voting Member, чей срок только закончился, обычно автоматически становится Regular Member, если не заявил иное. Это полезное состояние по умолчанию, но не индивидуальная квитанция о выходе. Формула «до пяти» не показывает, сколько мест занято. Ограничение в одну четверть по работодателю также нельзя воспроизвести без датированного общего числа Voting Members и понятной основы для определения аффилиации.

Переходный реестр Community Voting Members

Daniel Kade предлагает компактный переходный реестр Community Voting Members. Он не переписывает Устав и не требует раскрывать частные материалы кандидатов. Его задача — соединить факты, которые иначе останутся разбросанными по issues, повесткам, спискам и обновлениям репозитория.

Первое поле — состояние цикла: запланированный переход, номинации открыты, голосование идёт, результат подтверждён или внесено исправление. Оно должно ссылаться на управляющую формулировку Устава, называть старый и новый классы и не позволять прочесть будущую норму как уже совершённое назначение.

Второе поле — карта мест. Для каждого затронутого старого пути она указывает источник места, публично названного держателя, обычную границу срока и состояние выхода: срок завершён, отставка, замена, только Regular Member, кандидатура в новый класс или не опубликовано. Для новых мест она различает занято, свободно и публично не определено. Отсутствие имени не является автоматическим доказательством вакансии.

Третье поле, право на участие и электорат, повторяет условие кандидатуры и две уставные категории избирателей, указывая датированное общее число либо сохраняемый метод аудита. Не нужно раскрывать частную причину допуска каждого человека; необходимо сделать понятным знаменатель результата.

Четвёртое поле связывает процедуру и результат: issue о выдвижении, реально применённый метод, если он опубликован, сообщение о результате, pull request README, дату вступления в силу и получившийся список Voting Members. Устав приводит Condorcet и Single Transferable Vote как возможные методы. Он не даёт основания предполагать, какой из них применялся в конкретном цикле.

Пятое поле — проверка состава: общее число Voting Members на дату вступления в силу, публичная основа аффилиации с работодателем при наличии, четвертной предел и статус — соблюдён, исправлен, ожидает или не опубликован. Проверка уставного условия не есть утверждение о конфликте.

Наконец, в разделе граница полномочий и журнал исправлений раздельно указываются Board, CPC, CPC Directors и автономия проектов, а также то, чего публичные материалы не доказывают: частная причина допуска, нераскрытое число голосов, последующая отставка или решение Board. Исправление становится датированным дополнением, а не тихой заменой списка.

Открытая governance не означает, что каждый участник обладает всеми полномочиями. Она означает, что у каждого действительного полномочия есть видимые источник, предел и конечное состояние. Осенний переход даёт OpenJS возможность зафиксировать это различие в момент, когда оно начинает действовать.

Источники

  1. OpenJS Cross Project Council Charter
  2. OpenJS Cross Project Council Governance
  3. OpenJS Cross Project Council repository and current roster
  4. OpenJS Foundation Governance archive
  5. Lu Heng — The Multi-Stakeholder Mirage