O que LemonWrench — pesquisa de reparação automóvel faz?
Transforma "como substituo X no " num procedimento, uma tabela de binários e figuras legendadas — e depois verifica contra um catálogo de peças e notas reais de campo para que não siga um passo que o manual omitiu.
Fonte primária: https://lemon-manuals.la — ~10.000 veículos dos EUA/Canadá de 69 marcas, 1960–2025, gratuito, sem login. Marcas nacionais, importadas, órfãs (Pontiac, Oldsmobile, Saturn, Saab, AMC, Geo, Mercury, Suzuki), exóticas europeias, camiões/comerciais e EV modernos (Tesla 2012→, Rivian 2022→). Os anos são abrangentes, não apenas os recentes: Toyota e Ford têm 66 anos-modelo consecutivos. Texto HTML real (tabelas de binários, capacidades, passo a passo), figuras em /images25/. Não são PDFs digitalizados.
Duas bases de dados por ano-modelo:
| BD | Fonte | Utilizar para |
|---|---|---|
| LEMON | Captura de 2025 | 2010+, TSBs atuais, árvores completas, legendas de figuras |
| CHARM | DVDs de 2013 | 1990s–2000s, detalhe mais fino, árvores truncadas em profundidade |
A regra das três fontes
Um manual sozinho não é uma resposta. Cada resposta confiável aqui vem de três:
- O manual — o procedimento e os valores de binário.
- Um catálogo de peças (gmpartscenter.net, gmpartsdirect.com, rockauto, etc.) — números de peça, e prova estrutural: se duas peças fundidas são peças separadas, são peças separadas. É assim que se responde "este suporte faz parte da tampa?" sem adivinhar a partir de uma foto.
- Consenso de campo (fóruns do modelo, tópicos do JustAnswer/identifix, transcrições do YouTube) — os passos que o manual omite porque o engenheiro nunca pegou numa chave inglesa. Diga claramente quando um passo é consenso de campo em vez de texto do manual.
Se as três discordarem, reporte a discordância. Nunca a disfarce.
A ferramenta
S=scripts/lemon.py
python3 $S <cmd>
| Comando | Finalidade |
|---|---|
makes | nomes de marcas canónicas |
years MAKE | anos-modelo presentes |
cars MAKE YEAR [regex] | veículos para esse ano, marcados [LEMON] / [CHARM] |
index VEHICLE [--refresh] | obter+colocar em cache toda a árvore de ligações (uma vez por veículo) |
| `find VEHICLE TERM... [-n N] [--strict | --any]` |
read VEHICLE TERM... [-k N] | renderizar o N-ésimo resultado, seguindo automaticamente subpáginas do hub |
get URL | renderizar uma página pelo URL absoluto |
sub URL | páginas filhas sob um hub |
imgs URL / pic URL / note URL TEXT / notes [URL] | pipeline de figuras + cache persistente |
selftest | verificações do analisador, sem rede |
VEHICLE é o caminho do site sem barras: Toyota/2015/Camry LE,
Pontiac/2007/G6 V6-3.9L.
Fluxo de trabalho
- Resolva o carro corretamente.
cars MAKE YEARlista todas as variantes. O motor e o acabamento alteram o manual —G6 GT, 4D Sedan, 3.9 1, Automaticé um livro diferente deG6 GT, 4D Sedan, 3.5 N. Diga qual variante usou. Note que um emblema pode ser enganador: o mesmo modelo veio com vários motores, por isso confirme a cilindrada. - Indexe uma vez. Árvore de página única do LEMON ≈ 5,5 MB / 13k ligações, árvore dividida do CHARM
≈ 1,3 MB. Colocado em cache em
~/.cache/lemon/<hash>.idx; consultas posteriores são pesquisas locais.--refreshapenas quando o site adicionar manuais. - Pesquise no vocabulário do site —
removal,installation,disassembly,torque specifications,fluid capacities,valve clearance,component locations,wiring diagram,DTC,labor times. Por omissão, permite um termo não correspondido;--strictpara exato,--anypara pesquisa de uma palavra. - Leia e escale.
readimprime os resultados, depois o texto da melhor página e depois segue subpáginas. As árvores do CHARM são truncadas em profundidade: uma página hub lista frequentemente nada até fazersub <url>e depoisget <url>. A escalada de dois níveis é normal, não é um erro. - Resposta: passos numerados, binários exatamente como impressos, URL da página e uma
nota de confiança por afirmação (
manual/catalog/field).
Figuras
read/get emitem linhas [FIGURE https://lemon-manuals.la/images25/XXXX/], com uma
descrição em cache anexada quando existe.
python3 $S pic https://lemon-manuals.la/images25/GM1557668/ # -> ~/.cache/lemon/img/GM1557668.png
# veja-a, depois:
python3 $S note https://lemon-manuals.la/images25/GM1557668/ "tampa do balancim direita, anilha do parafuso, suporte da bobina acima"
As legendas no texto da página (Fig 1: View Of Right Valve Rocker Arm Cover) são o
título real da figura — use-as, são precisas mesmo quando a digitalização é ilegível.
A arte linear de 1 bit lê-se bem no tamanho real. Vale a pena ver: vistas explodidas (trazem
indicações de binário que o texto omite), diagramas de cablagem, vistas de terminais do conector.
As descrições persistem em ~/.cache/lemon/imgnotes.json — descreva um diagrama uma vez e
fica em texto para sempre.
Para além do manual
- Questões estruturais ("esta peça faz parte da tampa da distribuição?") → catálogo de peças. Número de peça separado + junta separada = peça fundida separada. O diagrama do catálogo também indica a que subconjunto pertence um fixador.
- Questões de acesso ("o que está a bloquear este parafuso?") → fontes de campo. Pesquise
<ano> <modelo> <motor> "<peça>" suporte parafusoe leia os tópicos do fórum/JustAnswer; os técnicos da concessionária publicam os passos em falta. - Se é necessária uma ferramenta (
polia pressionada,Torx,perno) → os passos preliminares do procedimento de remoção; nomeiam as ferramentas especiais (ex.:J 25034-C). - Binário para uma peça que não consegue identificar → tabela de binários por nome de componente, depois confirme a peça fundida pelo número de peça. Suportes com aspeto semelhante no mesmo motor têm frequentemente especificações diferentes (ex.: 25 N·m vs 50 N·m em peças adjacentes).
Regras de resposta
- Cite os binários exatamente, nas três unidades:
34 N*m (350 kgf*cm, 25 ft*lbf). - Sinalize explicitamente os fixadores de binário baixo (tampas de válvulas, tampas de plástico/compósito): o aperto excessivo em alumínio é a principal causa de fugas repetidas e de fios partidos.
[09/2014 - ]no caminho é uma data de revisão — essa página aplica-se a partir de então.- As páginas LEMON dizem frequentemente que o manual "é idêntico às seguintes variantes do modelo, exceto possivelmente Tempos de Mão-de-Obra, Fluidos e Ajuste de Pneus" — reutilize em vez de pesquisar novamente.
<veículo>/Labor Times/lista operações de Remover e Substituir; se disser "apenas disponível para uma variante de veículo diferente", use a variante que nomeia.- Não abrangido? Diga-o claramente e nomeie o ano mais próximo que é abrangido. Nunca invente uma especificação.
- A sequência é importante: forneça a cadeia de pré-requisitos (correia → acessório → suporte → tampa), não apenas os parafusos da tampa.
Entrega
Escreva o resultado como uma nota markdown autónoma, não como prosa de chat:
- frontmatter (
tags,vehicle,job,status,updated) - callout de estado — onde o trabalho realmente está
- a resposta direta à questão bloqueadora, primeiro
- procedimento numerado por lado/componente
- uma tabela de binários que abranja todos os fixadores tocados
- incorporação de figuras legendadas
- tabela de fontes/confiança — afirmação, fonte, verificado / consenso de campo
Veja examples/ para uma nota de trabalho completa.
Armadilhas
- Os URLs são sensíveis a maiúsculas/minúsculas e a grafia da marca é a do site (
Dodge and Ram,Mercedes Benz);canon_maketrata disso, o curl manual não. - As barras finais são importantes em todos os URLs de diretório.
- Os downloads zip
/bundle/estão desativados (303 →/static/sad.html).robots.txttambém desativa/bundle/. - Os URLs
/hyperlink/...são o resolvedor de referências cruzadas, não conteúdo. - Os caminhos contêm tags de versão e barras codificadas em
%2F: obtenha apenas o URL absoluto que a ferramenta imprimiu; re-citar um caminho descodificado resulta em 404. - O banner "de volta num servidor temporário / possível lentidão" é ignorado pelo analisador; permita timeouts de 120 s.
- Espelhos se o anfitrião principal falhar:
lemon-manuals.org.ua,lemon-manuals.gy,lemon.dogeware.me—LEMON_BASE=https://…substitui. - Os pythons Miniforge/pyenv muitas vezes não têm bundle de CA;
lemon.pyrecorre a/etc/ssl/certs/ca-certificates.crt.
Verificar
python3 scripts/lemon.py selftest # espera: selftest OK