# Registrar regras e decisões

Escreva uma System Rule ou uma Architecture Decision de modo que outros possam conferir por ela.

**Resultado:** uma regra pela qual qualquer pessoa confere um registro ou um desenho, ou uma decisão cujo status e escopo qualquer pessoa lê sem abrir o documento.

**Leitor:** o maintainer que fecha uma regra ou uma decisão, em geral no fim de uma sessão de modelagem.

## Registrar uma regra

1. Escreva a regra por inteiro primeiro, no documento que será a fonte dela: o registro de decisões, uma decisão de arquitetura, uma referência de skill ou as regras de construção. A linha aponta para lá.
2. Abra Data → **System Rule** → **per Scope**. Procure uma regra que já diga isso; amplie-a em vez de incluir uma quase duplicata.
3. Inclua uma linha:
   - **Name**: a regra em poucas palavras, como as pessoas a procurariam.
   - **Description**: o que deve valer e o que acontece quando não vale, em uma ou duas frases.
   - **Kind**: `Domain` para dados de negócio, `Build` para como os sistemas são construídos.
   - **Scope**: `global` e nenhum vínculo em System, ou `system` e vincule cada **System** que ela restringe.
   - **Applies To**: cada Record Type de que a regra trata; em branco na maioria das regras Build.
   - **Enforced By**: cada mecanismo que existe hoje. Escolha `Not Enforced` quando nada confere. Nunca marque um mecanismo planejado.
   - **Source**: os caminhos desses documentos com a seção ou o número, separados por ponto e vírgula. Use caminhos versionados, não `tmp/`.
   - **Based On ADR**: a decisão de onde ela vem, quando essa decisão tiver linha.
4. Deixe **Checked** desmarcado até alguém confirmar o texto, os vínculos e Enforced By. Anote dúvidas em **Review Note**.

[![per Scope separa regras globais das regras que valem em sistemas específicos.](/systems/systems-central/screens/sc-rule-per-scope.png)](/systems/systems-central/screens/sc-rule-per-scope.png)

## Registrar uma decisão

Architecture Decision ainda não tem linhas, e um Work Item ainda decide quais decisões entram aqui. Até isso ser resolvido, escreva a decisão num documento próprio e inclua-a no registro de decisões, como hoje. Quando a tabela estiver em uso:

1. Pegue o próximo **ADR Number** livre. Números nunca são reutilizados, nem para decisões rejeitadas.
2. **Title**: a decisão como frase curta (`Field Service owns service visits`), não o problema. **Name** se preenche como `ADR-0005 · Title`.
3. **Status** `Proposed`, **Decision Date** o dia da proposta, **Summary** duas ou três frases, **Document** o link para o texto completo.
4. Vincule os **Systems** e **Record Types** que ela muda, e **Decided By** quando aprovada.
5. Na aprovação, mude **Status** para `Accepted` e a data para a da aceitação. Só então a construção pode começar.
6. Quando ela substituir uma decisão anterior, vincule a anterior em **Supersedes** e mude o Status dela para `Superseded`.
7. Marque **Checked** quando a linha bater com o documento.

## Sucesso

Uma regra aparece no grupo certo em per Scope e em System Rules de cada System vinculado. Uma decisão é citada pelo seu Name em todo lugar, e cada regra derivada dela a vincula em Based On ADR.