Skip to content

Latest commit

 

History

History
242 lines (171 loc) · 11.1 KB

File metadata and controls

242 lines (171 loc) · 11.1 KB

Maintainers

English · Português (Brasil) · Deutsch · Français · 简体中文 · 日本語

Este documento define as regras para se tornar, atuar como e deixar o cargo de Maintainer de nexu-io/open-design. A composição individual do Core Team é mantida internamente e não é enumerada aqui — o que importa publicamente são as regras pelas quais todos jogam.

Status: v1, redigido em 2026-05-11. Documento complementar ao CONTRIBUTING.md — esse arquivo direciona contribuidores para cá em busca das regras completas.


Papéis

Papel Permissões
Contributor Qualquer pessoa com pelo menos 1 merged PR. Sem permissões especiais.
External Maintainer Um contribuidor da comunidade promovido conforme as regras abaixo. Pode revisar, dar approve, fechar/reabrir issues e fazer self-assign de issues. Não pode clicar no merge button — isso fica com o Core Team.
Core Team Time interno do Open Design. Possui acesso total de escrita ao repositório e é a autoridade final em decisões de governança. Composição mantida internamente.

O restante deste documento trata dos External Maintainers, salvo indicação em contrário.


O que um Maintainer pode fazer que um Contributor não pode

Ação Contributor Maintainer
Dar approve em um PR ⚠️ conta como comentário, não como o approval exigido ✓ conta como o approval exigido para o merge
Fechar / reabrir issues Apenas issues que ele mesmo abriu ✓ qualquer issue
Fazer self-assign em issues abertas e sem responsável (P0 primeiro)

Requisitos para merge

Qualquer PR — independentemente de quem o tenha autorado — precisa dos três:

  1. Sem conflitos de código.
  2. CI totalmente verde.
  3. Pelo menos um approval de um Maintainer ou de um membro do Core Team.

O approval de um Maintainer é o caminho que a maioria dos PRs segue até o merge — é a forma mais direta pela qual a confiança em um Maintainer aparece no dia a dia do projeto.


Como se tornar um Maintainer

três critérios de entrada. Todos os três precisam ser atendidos.

1. Volume de contribuição

  • ≥ 20 merged PRs em nexu-io/open-design.

Este é um piso flexível, não uma passagem automática. Atingir 20 PRs te coloca em consideração; isso não garante o papel.

2. Qualidade da conta (anti-sock-puppet, anti-bot)

Avaliamos o perfil do candidato no GitHub em sete dimensões. Passe em pelo menos 5 das 7 linhas de admissão e não acione nenhuma linha de veto.

# Dimensão Linha de admissão Linha de veto
1 Idade da conta no GitHub ≥ 1 ano < 90 dias
2 Repositórios públicos ≥ 3 0
3 Seguidores ≥ 10 < 3
4 Razão seguidores / seguindo > 0,30 < 0,05 (padrão típico de follow-farm)
5 Completude do perfil Avatar personalizado e pelo menos um entre bio / company / blog / twitter Avatar padrão e todos os campos bio/company/blog vazios
6 Atividade entre projetos Pelo menos um merged PR ou atividade sustentada de issue/star em outro repositório público Merged PRs apenas neste repositório
7 Situação da conta Sem restrições da plataforma GitHub (spam/banned/restored) Qualquer uma das anteriores

Dispensa para projeto inicial (expira automaticamente quando o repositório completa 6 meses)

Enquanto nexu-io/open-design tiver menos de seis meses desde o commit inicial, o veto de atividade entre projetos (#6) pode ser dispensado por consenso do Core Team quando:

  • As dimensões 1, 2, 3 e 5 estiverem claramente acima da linha de admissão; e
  • A qualidade dos PRs do candidato neste repositório for julgada alta na revisão prática feita pelo Core Team.

A dispensa precisa ser registrada no histórico interno do Core Team junto com o nome do candidato e a data. Após o repositório completar seis meses, esta cláusula de dispensa deixa de estar disponível.

3. Qualidade da contribuição (julgamento do Core Team)

Este critério é qualitativo e não baseado em fórmula. O Core Team observa:

  • Qualidade do código dos merged PRs (correção, disciplina de escopo, respeito aos limites do repositório).
  • Qualidade das revisões em quaisquer comentários de review deixados em PRs de outras pessoas.
  • Participação na comunidade — Discussions, triagem de issues, engajamento no Discord.
  • Sinal de colaboração — receptividade a feedback, disposição para revisar.

Atender aos dois primeiros critérios te coloca no pool de candidatos. Atravessar este terceiro limiar é o que te leva à indicação.

Processo de seleção

  1. Um membro do Core Team levanta o nome do candidato internamente.
  2. O Core Team chega a um consenso.
  3. Um membro do Core Team faz contato em particular para confirmar que o candidato aceita.
  4. Onboarding.
  5. Anúncio público.

Não há PR de indicação, nem votação pública, nem mandato fixo. A intenção é ser o inverso do modelo de approver-vote do K8s/Apache — no início da vida do projeto, um consenso leve do Core Team se move mais rápido e produz a mesma qualidade de resultado. Quando o grupo de Maintainers passar de cinco External Maintainers, esta seção será revisitada.


Responsabilidades e expectativas

Não há cotas rígidas. Sem contagem semanal de PR-reviews, sem taxa mínima de triagem de issues, sem SLA para tempo de resposta. Ser Maintainer é um reconhecimento de confiança, não um trabalho não remunerado.

O que pedimos, em espírito:

  • Dê approve em PRs para os quais você tem o contexto; abstenha-se quando não tiver.
  • Honre os requisitos de merge (§ "Requisitos para merge") — seu approval é um sinal real, não um carimbo automático.
  • Mantenha o #maintainers informado se você for ficar fora por um período prolongado.
  • Trate o roadmap ainda não público compartilhado em #maintainers como confidencial.

Se o Core Team observar um padrão de comportamento ruim (approvals automáticos, fechamentos maliciosos de issues, vazamento de roadmap não anunciado, etc.), as permissões são revogadas conforme § "Step-down — por justa causa".


Acesso exclusivo de Maintainer

Além das permissões de repositório listadas acima, os Maintainers recebem algumas coisas que a comunidade mais ampla não recebe:

  • Canal #maintainers no Discord — um espaço de trabalho privado compartilhado com o Core Team. Usado para previews de design, rascunhos de RFC e coordenação interna sobre a parte ainda não pública do roadmap.
  • Roadmap confidencial — visibilidade antecipada de trabalhos que ainda não foram anunciados. Os Maintainers concordam em tratar seu conteúdo como confidencial até que um membro do Core Team o anuncie publicamente.
  • Linha direta com o Core Team — suas mensagens em #maintainers recebem uma resposta mais rápida e substantiva do que em Discussions públicas, e o Core Team genuinamente solicita o input dos Maintainers em decisões de arquitetura e roadmap.
  • Selo de Maintainer — uma marca pública de confiança no seu perfil do GitHub e nas superfícies do repositório relacionadas a MAINTAINERS (será disponibilizado assim que o recurso de badge do GitHub estiver implementado).
  • Reconhecimento público na promoção — anúncio no Twitter, no GitHub Discussions e no Discord quando você entra.

Step-down

Ser Maintainer não é um cargo vitalício. Há três caminhos de saída.

Step-down voluntário (graceful)

  • O Maintainer envia mensagem ao Core Team ou posta em #maintainers.
  • As permissões são revogadas em até 24 horas.
  • O Maintainer passa para o status de Emeritus.
  • Nenhuma justificativa pública é exigida.

Transição por inatividade

Um Maintainer é considerado para transição por inatividade quando qualquer das condições abaixo ocorrer:

  • 90 dias consecutivos sem qualquer sinal de atividade (merged PR, comentário de review, triagem de issue, participação substancial em Discussion ou no Discord), ou
  • 60 dias consecutivos sem responder a qualquer @-mention (solicitação de review de PR, atribuição de issue).

Processo:

  1. O Core Team faz @-mention do Maintainer em particular no #maintainers, dando uma janela de resposta de 14 dias.
  2. Se não houver resposta substantiva em 14 dias, o Maintainer transita para Emeritus e as permissões são revogadas.
  3. Uma nota pública curta e gentil é postada no GitHub Discussions: "Obrigado pelas suas contribuições — você foi movido para Emeritus, é bem-vindo de volta a qualquer momento."
  4. Voltar é fácil — veja "Emeritus" abaixo.

Step-down por justa causa

Acionado por:

  • Comportamento ruim repetido (por exemplo, approvals automáticos em PRs abaixo do padrão, fechamentos maliciosos de issues, abuso de permissões).
  • Violação do Código de Conduta do projeto.
  • Incidentes de gravidade de segurança (conta comprometida não reportada prontamente, vazamento intencional de roadmap não anunciado, etc.).

Processo:

  1. Qualquer membro do Core Team pode abrir a discussão.
  2. Pelo menos 3 membros do Core Team precisam concordar antes de qualquer ação ser tomada (não é exigido o consenso completo do Core Team).
  3. Em até 24 horas após a decisão: permissões revogadas, remoção do #maintainers, remoção de qualquer roster de Maintainers (não transita para Emeritus).
  4. A pessoa afetada é informada da decisão e dos motivos, e pode recorrer uma vez.

O princípio é viés a favor de manter o Maintainer. Um único deslize pequeno não é motivo para step-down forçado; o caminho por justa causa é apenas para padrões repetidos ou incidentes pontuais graves.


Emeritus

Maintainers que dão step-down de forma voluntária ou transitam por inatividade tornam-se Emeritus. O status de Emeritus:

  • Remove permissões de write/approve/close.
  • Mantém o nome da pessoa reconhecido na seção Emeritus do roster (interno).
  • Mantém o acesso ao #maintainers no Discord (ler ou postar — escolha do Maintainer).
  • Não carrega nenhuma responsabilidade contínua.

Voltando do Emeritus

O caminho de retorno mais simples: 3 merged PRs nos 30 dias mais recentes, e então o Core Team restaura as permissões. Não é necessária nova indicação.

O ponto do Emeritus é reconhecer que a vida acontece — um sabático, uma mudança de emprego, um filho — sem nenhum drama ou custo social para qualquer das partes.


Mudanças neste documento

As regras deste documento podem ser alteradas por consenso do Core Team. Mudanças materiais (critérios de admissão, limiares de step-down) serão anunciadas no GitHub Discussions antes de entrarem em vigor para qualquer candidato ativo. Esclarecimentos editoriais podem ser aplicados diretamente.