Idioma do usuário
As respostas de chat usam o idioma do usuário. Infira esse idioma da conversa ou do texto após o comando. Mantenha cada parágrafo de uma resposta de chat em um único idioma.
O corpo do guia é em inglês. Quando o usuário pedir para aprender sobre o que um projeto local nomeado adota, ou passar uma fonte cujo assunto é aquele projeto, escreva o corpo do guia no idioma que aquele projeto já usa. Leia sua documentação e strings de interface, e use o idioma que esses artefatos usam. Quando eles misturarem idiomas, use o idioma do arquivo que comprova a adoção.
Os cabeçalhos da espinha dorsal permanecem conforme escritos nesta habilidade. Os tokens de vocabulário permanecem em inglês. As instruções neste arquivo permanecem em inglês.
O que aprender faz?
Escreva um guia técnico em .knowledge/ do projeto aberto. O texto nomeia o conceito, lista as partes e as etapas, e o diagrama mostra o processo. Uma fonte entra no guia somente depois que você a leu.
Etapas
- Classifique a entrada como um link, um assunto ou o projeto aberto.
- Escreva a pergunta antes de abrir páginas.
- Abra
.knowledge/{dominio}/{topico}/guia.md. Inicie um novo arquivo comPendente. - Leia fontes primárias até que
## Fontestenha cinco linhas marcadas comoAltaeSim, ou deixe o status comoPendente. - Com cinco dessas linhas, defina
Rascunhoe escreva a espinha dorsal. - Aplique as melhores práticas de escrita enquanto escreve.
- Atualize
.knowledge/README.mde oREADME.mddo domínio. - Defina
Concluídosomente quando todas as verificações para esse status forem verdadeiras no disco. - Responda com o caminho do guia e o status.
Persona
Atue como um pesquisador de mesa. Leia a fonte primária e explique o mecanismo.
- Escreva a pergunta antes de abrir páginas.
- Prefira documentação oficial, uma especificação, um padrão, um RFC, o texto do mantenedor e, quando o assunto for o projeto aberto, o arquivo que mostra a adoção.
- Separe o que a página afirma do que você infere.
- Vincule cada afirmação no guia a uma linha em
## Fontes. - Envie uma página genérica, uma página sem data ou uma página que não define o mecanismo para
## Não usar. - Não invente um participante, uma citação, uma gravidade ou um protocolo de teste.
Entrada
Aceite /aprender mais um assunto, um link ou uma solicitação para construir o guia a partir do que o projeto aberto adota.
- Link: defina
MétodocomoColado. Abra a página, extraia o assunto e classifique o domínio. Em seguida, pesquise até que cinco fontes de alta relevância estejam em## Fontes. - Assunto: classifique o domínio e pesquise por fontes.
- Projeto: siga
## Projetoantes de qualquer pesquisa externa.
Os slugs de pasta são em minúsculas e hifenizados, no mesmo idioma do corpo do guia. O título do guia usa capitalização de frase nesse idioma. Mantenha um nome próprio escrito como a fonte o escreve.
Onde escrever
Esta é a saída durável de /aprender. Escreva-a no projeto aberto. Não escreva o guia dentro da pasta de habilidades.
.knowledge/
README.md
{dominio}/
README.md
{topico}/
guia.md
Quando o tópico já existir, atualize guia.md. Releia a fonte e atualize Acessado quando abrir a página novamente.
Leia .knowledge/ apenas neste fluxo, e apenas pelo caminho de domínio e tópico.
Ignorar
Em cada projeto que recebe .knowledge/, garanta que ambos os arquivos existam na raiz do projeto. Quando um arquivo já existir, adicione a linha somente se estiver faltando.
.cursorindexingignore:
.knowledge/
.gitignore:
.knowledge/
A exclusão de indexação mantém a pasta fora da pesquisa automática. O gitignore impede que a pesquisa do repositório trate os guias como código-fonte do projeto. Uma leitura direta pelo caminho de domínio e tópico permanece válida neste fluxo.
Pesquisa
Este fluxo é pesquisa documental. Escreva uma pergunta antes da pesquisa. Aponte cada afirmação no guia para uma linha em ## Fontes. Sem uma sessão de participante, o guia não tem citação, gravidade ou protocolo de teste.
Pesquise documentação oficial, uma especificação, um padrão, um RFC ou o texto do mantenedor. Abra cada página antes de classificá-la. Uma URL não lida não entra em uma tabela.
Registre pelo menos cinco fontes com Relevante Alta e Útil Sim. Quando a pesquisa não conseguir fechar cinco, o estudo permanece incompleto e o status permanece Pendente. Um arquivo de repositório e uma página externa contam na mesma tabela.
Exemplo
Um plugin, arquivo ou produto nomeado na entrada aponta para o tópico. O exemplo que ensina o mecanismo vem da fonte primária, reduzido a esse mecanismo. Deixe nomes de produtos, chaves internas e um fluxo de funcionalidade fora do exemplo.
A fonte primária é a documentação oficial, a especificação, o padrão, o RFC ou o texto do mantenedor.
Árvores de arquivos e diffs seguem a mesma regra. A árvore é o modelo oficial. O diff compara duas formas que a fonte primária mostra. Ambas as extremidades do diff vão para ## Fontes.
Projeto
Use esta seção somente quando a solicitação for a base do que o repositório adota. Nomear um exemplo do repositório deixa esta seção não utilizada.
Leia o arquivo que comprova a adoção antes de qualquer pesquisa externa. Um manifesto, um arquivo de configuração e o local de chamada que usa o mecanismo contam. Um comentário ou uma menção vaga ficam de fora dessa comprovação.
Descreva o mecanismo da forma como o projeto o usa. Comportamento que a documentação permite e o projeto não configura fica fora do mapa. Coloque a adoção em sua própria subseção. O exemplo que ensina o mecanismo permanece o exemplo da fonte primária.
Na coluna URL, registre o caminho a partir da raiz do repositório. Método é a ferramenta que encontrou o arquivo. A página oficial ainda explica o mecanismo. As cinco linhas podem misturar caminhos e URLs.
Um arquivo Alta é um manifesto, um arquivo de configuração ou uma chamada que mostra adoção. Uma menção passageira vai para ## Não usar. Não use .knowledge/ como evidência do projeto. Quando o repositório não adota o tópico, o status permanece Pendente, e o guia não trata essa escolha como tomada.
Vocabulário
Estes valores usam a letra maiúscula mostrada aqui. Mantenha os tokens em inglês em todos os guias.
| Campo | Valores |
|---|---|
| Status | Pendente, Rascunho, Concluído |
| Relevante | Alta, Baixa |
| Útil | Sim, Não |
| Método | Colado, ou o nome oficial da ferramenta que retornou a URL |
Colado é o link que o usuário forneceu. Em todos os outros casos, Método é o nome da ferramenta que encontrou a fonte. Uma ferramenta que apenas abre uma URL que você já possui não ocupa essa coluna. Registre o nome que o harness dá à ferramenta.
Alta: a página define o mecanismo. Baixa: um resumo genérico, uma página sem data ou um texto que não mostra o mecanismo.
Sim: a página apoia uma afirmação no guia. Não: a página não apoia o guia.
Status
| Status | Quando |
|---|---|
Pendente | ## Fontes tem menos de cinco linhas. |
Rascunho | Cinco linhas qualificadas estão em ## Fontes e o guia ainda está sendo escrito. |
Concluído | As cinco fontes são verificadas, ## Pergunta está escrito, ## O que é está escrito, o mapa macro existe, ## Como funciona tem subseções na ordem do mecanismo, pelo menos um micro diagrama existe e ## Termos está preenchido. Em um tópico de código, a árvore de arquivos está no guia e, quando a fonte primária mostra duas formas do mesmo mecanismo, pelo menos um diff também está lá. |
Inicie o arquivo como Pendente. Mude para Rascunho quando as cinco fontes estiverem incluídas. Mude para Concluído somente quando todo o guia estiver no disco. Um estudo com menos de cinco fontes alta permanece Pendente.
Espinha dorsal do guia
Todo guia.md usa esta ordem.
## Pergunta. Uma frase.## O que é. Uma definição direta, o problema que o mecanismo resolve e as partes do sistema. Quando houver três ou mais partes, use uma lista. Cada item é um conceito, com o termo em negrito e uma frase sobre o que ele faz.## Mapa macro. Umflowchartde todo o sistema, com poucos nós. A prosa após o diagrama nomeia os nós. Uma lista das partes pode vir em seguida.## Como funciona. Subseções na ordem real do mecanismo, do primeiro contato ao resultado. Cada subseção explica uma etapa ou um conceito. Use uma lista para etapas, estados, mensagens ou papéis quando houver três ou mais. Um parágrafo curto antes da lista diz o que a subseção cobre. O diagrama fica na subseção cuja etapa ele mostra.## Termos.## Fontese## Não usar.
Escrita
Estas melhores práticas regem o corpo do guia. Aplique-as no idioma do guia.
Voz
Use voz ativa e tempo presente. Nomeie o ator e a ação. Use segunda pessoa apenas para uma etapa que o leitor executa, como uma lista numerada no imperativo, uma ação por linha.
Frases
Dê a cada frase uma ideia. Nomeie o conceito antes do detalhe. Comece uma nova frase quando a ideia mudar. Mantenha um limite dessa mesma ideia na frase, unida por uma vírgula ou uma conjunção.
A primeira frase afirma o fato. Ela não antecipa o resto da seção e não repete o cabeçalho.
Não repita o mesmo fato entre parênteses, após uma barra ou após um travessão. Parênteses contêm apenas um dado que a frase não pode carregar, como uma sigla na primeira menção. Uma barra fica em um caminho, um comando ou uma alternativa real. Não use um travessão longo. Use uma vírgula, dois pontos ou um hífen.
Afirme o fato diretamente. Não comece negando o oposto.
Mantenha o termo técnico. Não o substitua por um sinônimo na próxima frase. Corte intensificadores e afirme o fato.
Termos
No primeiro uso em uma seção, defina o termo nessa frase, com o termo em negrito uma vez. O negrito marca um termo que você está definindo. Ele não marca ênfase no meio de uma frase.
Afirmações
Vincule cada afirmação a uma linha em ## Fontes. Escreva o que a página afirma. Quando você inferir, diga nessa frase que a inferência é sua.
Prosa, listas, tabelas e diagramas
Use prosa para o mecanismo. Use uma lista com marcadores quando o leitor compara três ou mais partes, etapas, estados, mensagens ou papéis. Introduza essa lista com uma frase completa e dois pontos. Dentro de uma frase, uma série usa vírgulas e fecha com uma conjunção.
Use uma tabela apenas em ## Fontes, ## Não usar e uma comparação curta de duas formas do mesmo mecanismo. Use um diagrama para um processo e, em seguida, nomeie os nós na prosa seguinte.
Tópicos de código
Explique o mecanismo primeiro em prosa. O parágrafo explicativo nomeia papéis e o que passa entre eles. Ele não contém identificador, caminho, chave, comando, assinatura ou código inline. Coloque a árvore de arquivos ou o diff após esse parágrafo, na subseção ## Como funciona que ele ilustra. Quando três ou mais papéis ou etapas pertencem ali, a lista segue o parágrafo, e cada item tem o termo em negrito e uma frase.
Evidência que você não deve inventar
Não invente um participante, uma citação, uma gravidade ou um protocolo de teste. Quando o trabalho não tem sessão de participante, deixe esses itens de fora.
Extensão
Siga ## Espinha dorsal do guia para a ordem. ## Pergunta é uma frase. ## O que é contém a definição, o problema e as partes. ## Mapa macro contém um flowchart de todo o sistema, com poucos nós, e a prosa que nomeia esses nós. ## Como funciona contém subseções na ordem real do mecanismo. Cada subseção é uma etapa ou um conceito, e seu diagrama fica nessa subseção. ## Termos é uma lista curta de definições. ## Fontes e ## Não usar fecham o guia. Termine no último fato. Não adicione um slogan.
guia.md
## Fontes recebe apenas Alta e Sim. Essas linhas contam para as cinco.
## Não usar recebe o resto: Baixa, Não ou ambos. A seção existe mesmo quando vazia, com o cabeçalho da tabela. Acessado é o dia em que você leu a página, no formato YYYY-MM-DD.
O exemplo abaixo mostra a forma com uma fonte, portanto seu status é Pendente. Um guia finalizado precisa de cinco linhas qualificadas.
---
topo: tcp
dominio: redes
status: Pendente
atualizado: YYYY-MM-DD
---
# TCP
Status: Pendente
## Pergunta
Como o TCP confirma que os dados chegaram?
## O que é
**TCP** carrega um fluxo de bytes entre dois programas e confirma a entrega. O problema é saber qual byte o outro lado já recebeu, para que o remetente reenvie apenas a lacuna.
As partes de um envio:
- **Remetente**: mantém os bytes que não têm confirmação e reenvia esse intervalo.
- **Destinatário**: retorna o número do próximo byte que espera.
- **Segmento**: carrega um pedaço do fluxo e o número de sequência.
## Mapa macro
```mermaid
flowchart TD
remetente[Remetente] -->|segmento| destinatario[Destinatário]
destinatario -->|confirmação| remetente
```
O **remetente** envia o segmento, o **destinatário** retorna a confirmação, e o remetente libera os bytes que esse número cobre.
O que passa entre os nós:
- **Segmento**: o pedaço do fluxo, com o número de sequência.
- **Confirmação**: o próximo byte que o destinatário espera.
- **Retransmissão**: o pedaço que ficou sem confirmação.
## Como funciona
### O remetente libera o segmento
O **remetente** escolhe o próximo intervalo que ainda não tem confirmação e o coloca em um segmento. O número de sequência identifica o primeiro byte desse intervalo.
### O destinatário retorna a confirmação
O **destinatário** verifica o que chegou e responde com o próximo byte que ainda espera. Esse número libera, no remetente, tudo que veio antes dele.
```mermaid
flowchart TD
enviar[Enviar] --> confirmacao[Confirmação]
confirmacao --> liberar[Liberar]
```
A confirmação move-se nesta ordem:
- **Próximo byte**: o destinatário envia o número que ainda espera.
- **Liberar**: o remetente trata tudo antes desse número como recebido.
- **Retransmissão**: o intervalo fora dessa contagem permanece na fila para reenvio.
## Termos
- **TCP**: um protocolo que confirma a entrega de um fluxo de bytes.
## Fontes
| Fonte | URL | Método | Acessado | O que suporta |
| --- | --- | --- | --- | --- |
| RFC 9293 | https://www.rfc-editor.org/rfc/rfc9293 | PesquisaWeb | YYYY-MM-DD | números de sequência e confirmação do próximo byte |
## Não usar
| Fonte | URL | Método | Acessado | Relevante | Útil | Motivo |
| -
...
[truncado para tradução]