Lolly
Abrir o app

Direitos criativos, créditos e o que continua seu

Você deveria conseguir usar um bom trabalho feito por outras pessoas sem se tornar um especialista em licenciamento, e sem descartar silenciosamente as pessoas que o fizeram. Por isso o Lolly mantém a origem de cada obra que usa, lê a licença que foi registrada para ela, calcula o que essa licença pede do uso que você está de fato fazendo, faz a parte que um programa consegue fazer, e nomeia a parte que só você pode fazer.

Nada disso é aconselhamento jurídico, e nada disso é um veredito sobre o seu projeto. O Lolly registra fatos, aplica um pequeno conjunto de regras lidas dos próprios textos legais das licenças, e mostra seu raciocínio. Uma licença com condições é uma escolha normal e permitida. Ela nunca é apresentada como um ativo quebrado.

Três fatos, mantidos separados

"CC BY 4.0", "este uso precisa de um crédito" e "o crédito está no arquivo que você acabou de baixar" são três afirmações diferentes, e o Lolly as mantém separadas:

Onde você encontra isso pela primeira vez

Os conjuntos de emoji são o caso do dia a dia. O Twemoji é CC BY 4.0, então um título com um emoji nele exporta com a arte creditada e nada sobrando para você fazer. Os dois conjuntos OpenMoji são CC BY-SA 4.0, então recolorir um de seus glifos com um tratamento de marca é uma adaptação, e compartilhar essa adaptação pede que você escolha uma licença compatível uma vez. Escolher o conjunto nunca é bloqueado, e o controle de conjunto nomeia a licença onde você faz a escolha. As mesmas regras respondem por uma ilustração de catálogo, uma LUT, uma fonte e qualquer outra obra registrada.

As palavras que o Lolly usa

Um único vocabulário no painel de exportação, no Verify, na linha de comando e no resultado para máquina.

O que você vêO que significa
Créditos de origem serão incluídos.O crédito está preparado e a rota consegue transportá-lo. Nada foi escrito ainda, então esta não é uma mensagem de sucesso.
Créditos incluídos nos metadados deste arquivo.Os bytes entregues foram relidos, a credencial foi verificada e cada origem exigida foi encontrada nele.
Créditos e credenciais estão no pacote de download.O crédito viaja como um arquivo complementar ao lado do artefato. Mantenha-os juntos ao repassá-los.
Adicione este crédito à descrição da postagem.A rota escolhida não carrega nem uma credencial nem um crédito legível, então o texto do crédito é seu para colar.
Se você compartilhar esta adaptação, ela precisa de uma licença compatível.Uma origem ShareAlike foi alterada e o resultado está indo para algo além de uso privado. Escolher é uma única ação, não uma caixa de diálogo por posicionamento.
Licença da origem não registrada.Nada foi registrado para esta origem. Isso é uma lacuna a preencher, não uma constatação contra a obra.
Condições registradas, ainda não interpretadas.O identificador é reconhecido e suas condições estão listadas, e nenhuma regra aqui as interpreta. Nem aprovação automática, nem proibição automática.
Duas declarações de licença divergem.Dois registros nomeiam licenças diferentes e nada selecionou qual concessão se aplica.
Nenhum crédito exigido pela dedicação CC0 registrada.A dedicação não pede nada. Um crédito de cortesia é oferecido mesmo assim.
Os créditos não estão no arquivo que foi entregue.Um crédito foi prometido, a releitura não o encontrou, e o arquivo ainda é seu. Exporte novamente, ou use o texto do crédito manualmente.

O Lolly não usa "direitos autorais verificados", "legalmente seguro", "totalmente liberado" ou "direitos liberados", e não há um único selo verde de licença em lugar nenhum do produto. Essas palavras alegariam algo que nenhum programa consegue conferir.

As licenças que o Lolly revisou

Versão das regras rights-rules-2026-09-13.2. Cada regra abaixo foi lida do próprio texto legal da licença, e a seção de onde veio é citada ao lado dela em engine/src/rights-profiles.ts, assim como aqui. Uma versão e uma porta são mantidas como registradas: uma declaração CC BY 3.0 mantém sua própria versão em vez de ser relatada como 4.0 só porque o seletor do app prefere 4.0.

LicençaO que ela pede de um uso que o Lolly pode fazerLida de
CC BY 4.0O criador, o título, o aviso de direitos autorais, o nome e o link da licença, o link da origem e uma indicação das alterações, cada um quando a origem os forneceu. Nenhum uso é excluído, uso comercial incluído.Texto legal, seções 2(a)(1) e 3(a)
CC BY-SA 4.0O mesmo crédito. Além disso, se você compartilhar uma adaptação, ela sai sob uma licença compatível: CC BY-SA 4.0, a Free Art License 1.3, ou GPL-3.0-or-later, que funciona só em um sentido. Essas três são carregadas como dados da lista da Creative Commons, nunca comparadas pelo nome.Texto legal, seções 3(a) e 3(b); a lista de licenças compatíveis
CC0 1.0Nada. A dedicação não carrega nenhuma condição, então o Lolly oferece um crédito de cortesia e nunca apresenta um como obrigatório.A dedicação, seções 2 e 3; o FAQ da CC sobre crédito
CC-PDDCNada. O que é registrado é a própria alegação e quem a fez, porque uma certificação é a declaração de uma das partes, não uma prova.os parágrafos da dedicação e certificação
Apache License 2.0Os avisos da origem e o texto de atribuição do arquivo NOTICE viajam com uma obra distribuída. Um uso em tempo de execução não pede nada. Uma licença que pede um texto de aviso e uma obra que não carrega nenhum são relatados como uma lacuna.Apache License 2.0, seção 4, condições 1 a 4
MITA linha de direitos autorais e o aviso de permissão viajam com cópias e partes substanciais. Usos em tempo de execução e de referência não pedem nada.MIT, a condição do aviso de permissão
SIL OFL 1.1Renderizar texto com a fonte não pede nada do texto. Repassar o arquivo da fonte carrega a licença, o aviso de direitos autorais e a regra de nome reservado.OFL 1.1, condições 2, 3 e 5; o FAQ da OFL sobre documentos

Registradas, não interpretadas

CC BY-NC, CC BY-ND e as combinações NC-SA e NC-ND são reconhecidas, suas condições são listadas, e nenhuma regra aqui as interpreta. Elas relatam licence.unknown com uma linha nomeando as condições. Um contexto comercial não pode ser deduzido de um preço ou de uma conta, e cada texto combinado precisa de sua própria revisão antes que uma regra o toque.

Mais três respostas honestas, nenhuma das quais é permissão:

Informação de licença ausente nunca é lida como evidência de que uma obra é livre para ser repassada.

O que o Lolly faz por você

O que continua seu

Na linha de comando

Uma renderização imprime um bloco Rights: no standard error quando a avaliação tem um crédito exigido ou um problema. Ele carrega o status, uma linha por problema como code - summary, o que o arquivo entregue foi relido como sendo, e o texto do crédito para colar.

Rights: actions-required
  licence.adaptation-choice - If you share this adaptation, it needs a compatible licence.
  Credential intact. It records 1 source. The exporter recorded it; the source did not sign a credential of its own.
  Credits included in this file's metadata.
  "water wave (OpenMoji Color 17.0.0)" by Vanessa Boutzikoudi (OpenMoji), CC BY-SA 4.0 https://creativecommons.org/licenses/by-sa/4.0/, source https://raw.githubusercontent.com/hfg-gmuend/openmoji/f9fc506a3f913be9897ab0181d611d4c910a4104/color/svg/1F30A.svg, changes: recoloured.

Essas duas afirmações são independentes, e esse é o objetivo de mantê-las separadas: o crédito está no arquivo, e uma decisão de licença ainda é devida antes que o arquivo seja compartilhado. O arquivo é gravado de qualquer forma.

StatusSignificadoSaída
readyNada está esperando por uma pessoa.0
actions-requiredUma decisão permanece pendente antes que o arquivo seja compartilhado. O arquivo ainda é gravado.4
use-not-coveredUma regra revisada diz que a licença não cobre este uso.4
unknownOs únicos problemas são lacunas: uma licença que não foi registrada, ou condições que não são interpretadas.0
delivery-failedDefinido por um comprovante, nunca por uma avaliação: um crédito prometido não foi encontrado nos bytes entregues. O painel de exportação mostra isso; a CLI relata o mesmo fato em sua linha de releitura.não impresso

Saída 4 é o código que esta CLI já dá a uma verificação protetiva que disse não. Deliberadamente não é 3, que significa "tentar novamente em outro executor", e uma decisão de licença estará esperando em todo executor que existir.

--rights=private declara que esta renderização não está sendo entregue a ninguém. O bloco ainda é impresso e o crédito ainda está lá para copiar; o que recua é a condição que se aplica ao compartilhamento, e nenhuma alegação de entrega é registrada. Não existe uma flag para ignorar uma condição: --rights=ignore é um erro de uso.

Os códigos de problema são estáveis e legíveis por máquina, independentes do texto traduzido:

attribution.source-missing, attribution.delivery-missing, licence.adaptation-choice, licence.use-not-covered, licence.grant-conflict, licence.unknown, source.redistribution-unknown, credential.ingredient-missing.

Via MCP, lolly_verify retorna um payload rights com o resumo, uma linha por origem registrada e os limites declarados; um lolly_render sem navegador retorna status, issues, credits, fingerprint e uma flag creditsInFile que é medida relendo os bytes.

Onde as regras vivem

Quatro módulos do engine, todos puros: sem rede, sem relógio, sem sistema de arquivos. Os dados das regras são versionados e ficam no repositório, nunca são buscados.

MóduloO que contém
engine/src/rights-profiles.tsA tabela de identificadores, o leitor mínimo de expressões SPDX, os perfis revisados com suas citações, e a única regra para um link que um crédito pode imprimir.
engine/src/rights-evaluate.tsClassificação, problemas, o plano de atribuição e a impressão digital. Determinístico: os mesmos fatos em uma ordem diferente dão a mesma resposta.
engine/src/rights-attribution.tsCréditos legíveis, os arquivos complementares, os ingredientes de origem e o comprovante medido após a gravação.
engine/src/rights-report.tsUma credencial verificada, relida como as três perguntas que o Verify faz.

Os arquivos de expectativa em tests/fixtures/rights/ foram escritos a partir dos textos das licenças, e não a partir da saída do avaliador, e seu README cita a seção por trás de cada expectativa.

O que isso não faz

Dito claramente, porque uma lacuna que não é nomeada soa como uma promessa.