Espaços e projetos
O Notarium traça uma linha entre duas unidades de organização: o espaço — uma base de conhecimento isolada e um limite de segurança — e o projeto — uma pasta marcada dentro de um espaço. São coisas diferentes, com funções diferentes: o espaço isola, o projeto organiza.
O espaço — a unidade de isolamento
Um espaço é uma base de conhecimento autossuficiente: tem o próprio índice, grafo, busca, árvore, registro de histórico e o próprio conjunto de membros. Espaços não se sobrepõem: as notas, a busca e os links de um não são visíveis a partir de outro. Um espaço cumpre dois papéis de uma só vez — organização ("pessoal" / "trabalho" / "arquivo") e limite de segurança: é no nível do espaço que se decide quem vê o quê.
- Cada espaço é atendido por exatamente uma instância do motor — o isolamento vem da própria arquitetura.
- A identidade de um espaço é um
space_idinterno estável; o slug (URL-safe: letras latinas minúsculas, dígitos, hífens e sublinhados —[a-z0-9_-]) é um endereço renomeável e o handle na URL, enquanto odisplayNameé um rótulo legível por humanos. Renomear um slug é seguro: o nome antigo passa para o histórico de aliases e continua resolvendo (/s/<old>redireciona para o atual). - Endereçamento:
/s/<slug>na interface e/api/s/<slug>/…no REST.
Para mais detalhes sobre papéis e privacidade, veja Modelo de acesso.
O espaço pessoal
Todo usuário tem, garantidamente, um espaço pessoal — sua casa padrão:
- ele é criado quando a conta é provisionada e não pode ser excluído;
- serve como página inicial padrão e guarda a memória privada dos agentes sobre você e o seu perfil;
- é um ambiente de trabalho completo: você pode começar a fazer notas e a marcar projetos de imediato, sem precisar configurar nada à parte.
Essa é a única forma em que um espaço pessoal difere de um comum. Outro membro com acesso de leitura veria a sua memória privada e as suas notas pessoais — por isso convites para um espaço pessoal são proibidos no servidor, não apenas ocultados na interface.
O projeto — uma pasta marcada
Um projeto é uma entidade leve e opcional: uma subárvore de pastas comum dentro de um espaço, marcada como projeto. O conteúdo não precisa morar em projetos — uma pasta sem marca continua sendo apenas uma pasta.
A marca é um dot-file .notariummeta na raiz da pasta (JSON com um id estável). Ele viaja junto com a pasta em qualquer movimentação, inclusive uma externa (git, um gerenciador de arquivos) — a identidade de um projeto está ancorada na própria pasta, não apenas no banco de dados.
myspace/
├─ research/
│ └─ .notariummeta ← pasta marcada = projeto
├─ inbox/ ← pasta comum (não é projeto)
└─ ...
- O endereçamento é um handle
(space, slug), no modelogroup/projectdo GitLab. O slug de um projeto é único dentro de um espaço; projetos de mesmo nome em espaços diferentes são distinguidos pelo campospace. O projeto raiz se reduz a apenas<space>(por exemplo,main, e nãomain/main). - O slug de um projeto é a forma transliterada em kebab-case do
displayNameou do último segmento do caminho (não do caminho inteiro). - Marcar uma pasta, remover a marca ou criar um "New project" são ações humanas (a permissão
space:write). Um agente não cria contêineres: ele é dono do conteúdo, o humano é dono da estrutura. - Criar um espaço marca automaticamente a sua raiz como projeto — assim o agente já pode escrever em
<space>de imediato, sem marcação manual.
Um projeto é um escopo e um endereço, mas não um limite de segurança: a decisão de acesso sempre cabe à participação no espaço. Para saber como um agente endereça projetos, veja Ferramentas de intenção.
Projetos dependem do banco de metadados e do armazenamento local de marcas — sem eles, um projeto não pode ser aberto.