Habilidade de Ingestão de Fonte
Use esta habilidade para coleções limitadas, como canais de chat, streams de issues, feeds ou
caixas de entrada, onde execuções posteriores podem se sobrepor à cobertura anterior. Leia as
convenções compartilhadas,
a publicação e o
protocolo de manifesto. Após a aquisição, direcione
documentos e conversas para knowledge-ingest, que usa
knowledge-entities para enriquecimento de entidades. Direcione reuniões para
knowledge-meeting-ingest. Esta habilidade é responsável pela identidade e cobertura da fonte; os
fluxos de trabalho de ingestão transformam o conteúdo retido em conhecimento conectado útil.
Para criar trabalhos de ingestão recorrentes, use knowledge-automation primeiro.
Contrato
- Resolva uma chave estável de provedor/fonte antes de ler o conteúdo. Rótulos de exibição são nomes, nunca identidade.
- Mantenha uma página de
sourcecanônica comsource_role: canonical,provideresource_key. Reutilize-a em toda execução. - Para cada observação limitada, preserve o manifesto gerado como um anexo em uma página
sourcecomsource_role: snapshot, cobertura exata, hora da observação, hash do manifesto, contagem, completude, watermark e dependência da página de fonte canônica. - Manifestos retêm IDs estáveis de itens e hashes de conteúdo, não o texto fonte. Preserve o conteúdo original/exportado separadamente como evidência quando autorizado.
- Consulte páginas de snapshot anteriores para o mesmo provedor/chave de fonte antes de planejar. Baixe seus manifestos, verifique os hashes dos anexos e passe todos os snapshots sobrepostos para o planejador. Não dependa da memória da conversa.
- Reutilize bytes de fonte inalterados e registros existentes. Continue o enriquecimento previamente omitido dessas fontes retidas quando solicitado; um manifesto inalterado não significa que o enriquecimento de entidades já ocorreu. Ingira itens adicionados. Reconcilie itens alterados com páginas/afirmações existentes. Trate exclusão como estado observado da fonte, não como permissão para apagar o Conhecimento; corrija ou retire apenas quando as evidências justificarem.
- Um snapshot completo pode estabelecer ausência dentro de sua cobertura exata. Snapshots parciais ou desconhecidos não podem; IDs ausentes não resolvidos permanecem não resolvidos.
Procedimento
- Inspecione
knowledge_statuseknowledge_ontologypara o escopo do vault pretendido e os campossource, então pesquise no Conhecimento pela fonte canônica e snapshots anteriores por provedor/chave de fonte. Se uma ingestão privada do proprietário resolver inesperadamente para um escopo de conversa ou um vault vazio após uma reinicialização, pare antes de escrever e restaure o escopo autorizado pretendido; nunca presuma que a cobertura anterior está ausente do escopo errado. - Adquira uma exportação limitada com um leitor aprovado. Para Discrawl, execute
scripts/discrawl-normalize.mjscom seu arquivo configurado de somente leitura, ID de canal exato quando conhecido e limites RFC3339[since,before). O payload normalizado inclui IDs de autor estáveis mais campos de exibição observados no arquivo. Preserve o JSONL bruto e crie uma transcrição legível linha por linha separada quando revisão humana ou citações de linha forem necessárias. - Gere um manifesto determinístico com
scripts/source-manifest.mjs snapshot. Anexe-o antes de publicar a página de snapshot; registre o SHA-256 retornado. - Baixe todos os manifestos anteriores sobrepostos e execute
scripts/source-manifest.mjs plan. Inspecione intervalos cobertos/não cobertos e as listas de adicionados/alterados/excluídos/inalterados/não resolvidos. - Teste de 3 a 5 itens ou discussões substantivos, depois ingira através de
knowledge-ingest(ouknowledge-meeting-ingestpara reuniões). Para chat, agrupe mensagens relacionadas com seu contexto de resposta; useknowledge-entitiespara enriquecer pessoas, empresas, projetos e conceitos relevantes a partir de suas contribuições. Incorpore desenvolvimentos suportados no Estado, linhas do tempo datadas e back-links contextuais, não apenas um resumo do canal. Use IDs externos estáveis em citações de fonte e o snapshot retido como dependência. Reutilize seus originais em vez de fazer upload de uma cópia por discussão. - Publique ou atualize registros derivados, depois publique a página de snapshot. Um snapshot é
completesomente quando a aquisição e a criação do manifesto cobriram o intervalo declarado; a extração derivada ainda pode ser parcial e deve ser relatada como tal. - Leia de volta a página canônica, página de snapshot, anexo, registros derivados e conexões dependentes da fonte. Verifique hashes e cobertura exata.
Exemplo com Discrawl
node scripts/discrawl-normalize.mjs --config /approved/discrawl.yaml \
--channel 1234567890 --since 2026-09-21T00:00:00-07:00 \
--before 2026-09-28T00:00:00-07:00 --output messages.jsonl
node scripts/source-manifest.mjs snapshot --provider discord \
--source-key discord:GUILD_ID:1234567890 \
--coverage-start 2026-09-21T00:00:00-07:00 \
--coverage-end 2026-09-28T00:00:00-07:00 \
--input messages.jsonl --output manifest.jsonl.gz --summary snapshot.json
node scripts/source-manifest.mjs plan --current manifest.jsonl.gz \
--previous prior-1.jsonl.gz --previous prior-2.jsonl.gz --output plan.json
Não inclua credenciais, caminhos de arquivo ou conteúdo privado bruto na prosa da página do Conhecimento. Nenhum agendador, daemon de conector ou trabalho de ingestão de propriedade do plugin é criado; a habilidade e os scripts suportam um fluxo de trabalho executado por agente autorizado.