CommunityEscrita e Ediçãogithub.com

docsor1212/paper-polisher

Autoavaliação da taxa de IA e orientação de polimento para escrita acadêmica: sugestões de reescrita em nível de sentença (localiza e aconselha, nunca reescreve automaticamente), verificação de terminologia e consistência, detecção de 'cheiro de tradução', atribuição de parágrafos, pré-verificação de periódicos com contexto da disciplina, verificação de normas de estilo, relatório de qualidade, verificação de rótulo AIGC, além do modo `--batch DIR` com resumo HTML. Lê .docx diretamente. 100% local, zero upload.

O que é paper-polisher?

O Paper Polisher Pro é um kit de ferramentas acadêmicas totalmente local para autoavaliação e polimento de textos acadêmicos, especialmente em chinês. Ele oferece uma camada opcional de modelo supervisionado para máxima precisão, mas funciona sem ele com um mecanismo baseado em regras e espectro. Suas principais funcionalidades incluem detecção da taxa de IA (AI-rate), sugestões de reescrita em nível de sentença, verificação de terminologia, detecção de 'cheiro de tradução', atribuição de parágrafos, pré-verificação de periódicos, verificação de normas de estilo, relatório de qualidade e verificação de conformidade com rótulos AIGC. O sistema é executado localmente, sem upload de dados ou credenciais, e utiliza múltiplas camadas, como mecanismo de regras, espectro de tokens e atribuição de impressões digitais (fingerprint) do LLM. É importante notar que não emite veredito para textos com menos de 100 caracteres e possui limitações em textos médicos no modo sem o modelo supervisionado. O projeto é ideal para autores que desejam revisar e melhorar a qualidade da própria escrita, seguindo políticas de integridade acadêmica, e não para evadir sistemas institucionais de detecção de IA.

Funciona com✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/docsor1212/paper-polisher-pro/tree/HEAD

Installed? Explore more Escrita e Edição skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Paper Polisher Pro

Detecção de escrita por IA (autoavaliação da taxa de IA para autores) · orientação de polimento acadêmico · padronização de terminologia · verificação de 'cheiro de tradução' · relatório de qualidade · verificação de conformidade com rótulo AIGC · atribuição em nível de parágrafo · pré-verificação de periódicos. 100% local, zero upload, zero credenciais, biblioteca padrão pura (camada de aprimoramento onnxruntime opcional).

⛔ Leis de ferro

  1. Apenas números reproduzíveis. Todas as métricas vêm da avaliação da divisão de teste (test split) em eval/run_eval.py; alegações não suportadas como "taxa de detecção 100% / F1 98,3%" de documentos antigos foram removidas.
  2. Sem veredito para texto curto. Textos com menos de 100 caracteres recebem risk=unknown (lição da comunidade: falsos positivos em texto curto são incontroláveis).
  3. Impressões digitais (fingerprints) atribuem, nunca pontuam. (Medido em 2026-08-15: injetar impressões digitais no detector dobrou os falsos positivos humanos.)
  4. Separação calibração/avaliação. Espectro, pesos e limites são construídos apenas na metade de calibração; a metade de teste é reservada para avaliação final (uma AUROC in-sample de 0,9972 caiu para 0,9187 real após a divisão).

TL;DR

  • O que é: Kit de ferramentas 100% local de autoavaliação da taxa de IA + polimento acadêmico para texto acadêmico em chinês (modelo supervisionado opcional para melhor precisão; inglês recebe pontuações apenas de regras consultivas).
  • Início rápido de 30 segundos: python3 scripts/pp.py quickstart (demo sem modelo, sem arquivo) · python3 scripts/pp.py detect draft.txt --format json · sugestões de reescrita em nível de sentença: python3 scripts/pp.py fix draft.txt · relatório completo de autoavaliação: python3 scripts/pp.py workflow draft.txt · ambiente: python3 scripts/pp.py doctor (um ponto de entrada roteia todos os subcomandos)
  • Medido (fora da amostra, vinculado à impressão digital md5 2631df3d388b): AUROC 0,9998 pré-2026 / 0,9400 geração atual; FPR humano @médio 2,3%.
  • Conheça os limites: textos <100 caracteres recebem risk=unknown por design · texto médico em modo degradado é superpontuado · documentos mistos humano+IA: a pontuação em nível de documento é não confiável (a atribuição de parágrafos é o sinal acionável) · apenas para autoavaliação de autores — nunca para evitar a detecção institucional de IA.
  • Para onde ir a seguir: cenários em references/best-practices.md · matriz de limites de capacidade abaixo · exemplo completo em § Início rápido · FAQ agrupada em cinco partes (vereditos → modos e instalação → saída e interpretação → segurança e verificação → ferramentas e fluxo de trabalho), vá direto ao grupo que você precisa · histórico completo em CHANGELOG.md.

Roteamento de tarefas em 30 segundos

Você quer…ExecuteDocumentação aprofundada
Verificar a taxa de IA de um rascunhopp.py detect draft.txt --format json§ Desempenho medido + matriz de limites abaixo
Ver quais frases parecem escritas por IApp.py fix draft.txtpp_fix_suggest.py --help
Comparar antes/depois da sua reescritapp.py rewrite-check orig.txt rev.txtFAQ: sugestões de reescrita
Traduzir um PDF mantendo o layoutNão use este — use pp.py bundle do doc-holmesFerramentas relacionadas
Verificar convenções de escritapp.py norm draft.txtFAQ: norma de estilo
Processar em lote uma pasta de tese inteiraai_detector.py --batch DIR --csv s.csv --report r.htmlFAQ: CSV em lote
Verificar a alegação de zero uploadpp.py verify + pp.py testDeclaração de segurança
Pré-verificação de periódico (contexto da disciplina)ai_detector.py draft.txt --profile journal§ pré-verificação de periódico
Solucionar problemas de ambientepp.py doctor / pp.py freshness --statusFAQ: modos
Um painel visual de todos os resultadospp.py html-report draft.workflow.json -o report.htmlFolha de dicas do script: pp_report_html.py
Acompanhar um rascunho em várias rodadas de reescritapp.py trend 轮次目录/ -o trend.htmlFolha de dicas do script: pp_trend.py
Não sabe qual comando se encaixa?pp.py recommend "把这段的AI率降一降"pp.py recommend --help

Os três limites mais importantes (detalhes completos na matriz abaixo)

  1. Superpontuação de registro médico em modo degradado — FPR humano @médio apenas com regras ≈59% médico vs ≈2% geral; confie apenas em vereditos @high em texto médico, ou instale o modelo supervisionado.
  2. Documentos mistos humano+IA — AUROC em nível de documento 0,52-0,54 (limitação inerente de média); use a atribuição de parágrafos como um ranking para revisão humana, nunca como um veredito automático.
  3. Escopo de cobertura de dados — o banco de termos tem 2.344 termos médicos/acadêmicos (textos não médicos são padronizados para baixo por design); as camadas de estilo são calibradas para prosa acadêmica (entrada coloquial/narrativa = apenas consultivo). Escopo por ferramenta: matriz de sub-ferramentas abaixo.

Integridade acadêmica

Esta ferramenta é para autores revisarem e melhorarem a qualidade da própria escrita — frases mais claras, terminologia consistente, estilo natural. Ela não foi projetada para evitar sistemas institucionais de detecção de IA e não deve ser usada para deturpar o trabalho gerado por IA como escrito por humano. Siga as políticas de uso e divulgação de IA da sua instituição; o aigc_label_check.py incluso existe para ajudá-lo a cumprir as regras de divulgação e rotulagem (ex.: as medidas de rotulagem da China de 2025-09) — para declarar a assistência de IA corretamente, não para ocultá-la. Todo relatório de risco de IA (ai_detector.py / deai_gate.py) carrega um integrity_notice explícito para esse efeito.

Desempenho medido (C-ReD + DetectRL-ZH, metade de teste fora da amostra, n=5.251)

Nota sobre o escopo do corpus (v4.8.0): a tabela da era v3.0 abaixo foi medida na totalidade da metade de teste fora da amostra (n=5.251). O corpus de amostra incluso é um subconjunto — sua metade de teste é n=1.304; números reproduzíveis por corpus: apenas regras (PP_NO_SUP) 0,8985 geração antiga / 0,7149 geração atual, fusão 0,9998 / 0,9400 (eval/results/v480_rules_*.json, v35ctl_*.json; chaves de cache vinculam a impressão digital do modelo E o modo do mecanismo).

| Métrica | v2.0 linha de base | v3.0 regras+espectro | v3.1 +supervisionado | v3.4 supervisionado (registro de era da versão, atual veja linha de remensuração abaixo) | |---|---|---|---| | AUROC (metade de teste) | 0,7046 | 0,9187 | 0,9997 | 1,0 | | TPR@FPR5% | 30,4% | 49,0% | 99,95% | 100% | | TPR@FPR1% | 16,7% | 24,9% | 99,88% | 100% | | FPR humano @p99 calibrado | não medido | não medido | 3,56% (30/844) | 0,71% (6/844) | | Paráfrase/ataque misto AUROC | 0,64 | 0,89 | 1,0 (no corpus) | 1,0 | | Recall de ataque "assistido por IA" | — | — | 71,1% | 86,6% | | Recall de narrativa simples/filme OOD | — | — | 1/6 | 5/6 apenas supervisionado · 6/6 fusão local |

Remensuração vinculada à impressão digital v4.4.0 do modelo supervisionado de envio (md5 2631df3d388b): AUROC 0,9998 (metade de teste, n_base=927), TPR@FPR1% 99,4%, FPR humano @médio 2,3% — eval/results/v35ctl_oldgen.json. As colunas acima são preservadas como registros de era de versão (linhagem de modelo anterior; binários não foram vinculados a impressão digital antes da v4.4.0).

Qual coluna se aplica a você? (Navegação de calibre: as únicas linhas de base atuais citáveis são v35ctl_* em eval/results/CURRENT.md; as colunas à esquerda são registros de era de versão.) O pacote base executa o mecanismo v3.0 regras+espectro (coluna AUROC 0,9187, medido no corpus completo fora da amostra; as linhas de base arquivadas pré-4.4.0 são anteriores à vinculação de impressão digital — todo resultado de avaliação desde a v4.4.0 carrega o md5 do modelo implantado como model_fp, números vinculados atuais em eval/results/v35ctl_*.json). As duas colunas à direita exigem o modelo supervisionado local opcional (veja abaixo). O mecanismo informa honestamente em qual modo você está: todo relatório carrega degraded_mode / degraded_notice quando a camada supervisionada está ausente ou ignorada.

Matriz de limites de capacidade (leia antes de confiar em qualquer detector)

CenárioComportamento
Prosa acadêmica chinesa, pilha completaMelhor caso (AUROC 0,9998 fora da amostra, FPR humano @médio 2,3% — v4.4.0 vinculado à impressão digital)
Pacote base sem modeloRegras+espectro (0,9187); registro médico superpontuado (FPR humano @médio apenas com regras: ~59% médico vs ~2% geral) → confie apenas em vereditos @high em texto médico
Texto em inglêsA filtragem de idioma pula a camada supervisionada treinada em chinês por design; esqueleto apenas com regras em inglês, apenas consultivo
Documentos mistos humano+IAAUROC em nível de documento 0,52-0,54 (limitação inerente de média); AUROC em nível de parágrafo 0,69 com ponto de operação ideal calibrado P=0,60 a 63% de cobertura (references/para_thresholds.json) — abaixo da barra de veredito automático; use rankings pp_workflow.py/paragraph_report.py apenas para revisão humana
Cabeça de regressão de extensão de ediçãoρ=0,540 — relatado como metadados, nunca usado em vereditos
Modelos de geração atual (amostragem de 2026-09)AUROC 0,9400 (remensuração vinculada à impressão digital v4.4.0, conjunto de avaliação de 443 documentos da geração atual: 9 famílias incl. K3/K2.7/Qwen3.7-3.8/DS-V4/V4.1/GLM-5.3/M3) vs 0,9998 pré-2026 fora da amostra — uma lacuna verificada modesta. A figura anterior de 0,6542-vs-0,9022 era um artefato de medição (replay de cache de pontuação desatualizado + linhagem de modelo não verificada); ambas as classes são estruturalmente prevenidas desde v4.4.0 (model_fp em todo JSON de resultado)
Texto coloquial / registro oralA camada de estilo é calibrada para prosa acadêmica; trate as pontuações de estilo como consultivas fora desse registro

Matriz de escopo de sub-ferramentas (domínio calibrado de cada sub-ferramenta)

Sub-ferramentaDomínio calibradoComportamento fora do domínio
ai_detector / deai_gateProsa acadêmica chinesa (calibrado fora da amostra)Registro médico superpontuado em modo degradado; inglês apenas consultivo com regras; entrada narrativa/coloquial recebe um aviso de registro
paragraph_report / pp_rewrite_checkMesmos critérios do mecanismo acima, por parágrafoMesmas limitações; rewrite_check compara dois rascunhos sob critérios idênticos
pp_fix_suggestBiblioteca de padrões de escrita com IA chinesa (registro acadêmico)Texto em inglês recebe apenas verificações básicas de conectivos/ritmo; as descobertas são observações de estilo, nunca detecções
term_checkTerminologia médica/acadêmica chinesa (banco de 2.344 termos)Texto não médico: a taxa de padronização aparece baixa — isso é escopo do banco, não um erro; --auto-fix respeita o contexto
translation_smell_checkProsa acadêmica chinesa (padrões de tradução)Texto fonte em inglês: a saída lista seus termos de ponto cego em vez de fingir cobertura
style_distanceEstilometria de prosa acadêmicaFora do registro acadêmico, a pontuação de estilo é apenas consultiva (declarada na saída)
style_normConvenções mecânicas — independente de registroSem pontuação por design; verificações estatísticas (números/abreviações) são fracas em amostras curtas e avisam sobre isso
aigc_label_checkMetadados de arquivo / C2PA / declarações explícitas de rótuloNão é um detector de conteúdo; verifica a conformidade da rotulagem, não a autoria
quality_reportDimensões de legibilidade/qualidade para o manuscritoNão é uma medida de taxa de IA; as heurísticas de pontuação são genéricas, não ajustadas para periódicos
docx_textExtração de texto .docx (preservando parágrafos)Não é um conversor de PDF — PDFs são rejeitados com conselhos de conversão (a extração de PDF chinês sem dependências não pode ser garantida)
modo lote (--batch).txt/.md/.docx <5 MB por arquivo>5 MB ignorados por design; docx criptografado/somente imagem produz um erro explícito, não saída vazia silenciosa

Declaração de segurança e comportamento

  • 100% local: todos os recursos são executados no dispositivo. A base de código não faz nenhuma chamada de rede de saída — sem bibliotecas de cliente de rede, sem utilitários de rede. O único componente com capacidade de ouvinte é o formulário HTTP MCP opcional (--transport http), que vincula apenas o loopback 127.0.0.1 (vinculação assegurada pela regra de lista de permissões do verificador AST); a varredura AST trata qualquer ouvinte sem um vínculo de loopback como uma violação. Verifique estruturalmente: python3 scripts/pp_verify.py (varredura em nível AST; saída 0 = zero chamadas de rede, todos os scripts compilam). A pesquisa de texto legada grep -rEin "urllib|requests|socket|import http" scripts/ pode mostrar algumas strings de URL em rodapés de relatório — esses são dados em constantes de string, não código de rede; o verificador AST distingue os dois.
  • Sem upload, sem credenciais: não lê nem transmite credenciais, chaves ou dados pessoais; as únicas duas variáveis de ambiente são PP_NO_SUP (pular a camada supervisionada) e PP_LANG (en alterna a superfície de entrada pp.py para inglês) — ambas alternâncias de comportamento local.
  • Sem persistência: não cria tarefas agendadas, entradas de inicialização automática ou alterações de configuração do sistema; arquivos temporários (JSON entre camadas, texto de sonda) são excluídos após o uso.
  • Sem código remoto: não carrega modelos ou scripts remotos; o modelo supervisionado opcional é colocado pelo usuário em um caminho local.
  • Limite de dados: lê/escreve apenas arquivos especificados pelo usuário, o diretório temporário do sistema e seus próprios diretórios de dados do pacote (artefatos de calibração/atualização); os relatórios vão apenas para onde o usuário os direciona.
  • Integridade acadêmica: veja a seção acima — para autoavaliação e melhoria de qualidade do autor com divulgação compatível com a política; não para evitar detecção.

Contrato de código de saída (estável desde v5.8.0)

SaídaSignificadoCasos típicos
0Sucessorelatório produzido · verify passagem de zero rede · test suíte verde
1Executado, mas não passoufalha de tempo de execução do mecanismo (conselho de recuperação na mensagem) · falhas de test · verify deriva · freshness deriva de linha de base
2Erro de uso ou entradasubcomando desconhecido · arquivo ausente · texto com menos de 100 caracteres · arquivo de entrada não analisável
3Ambiente não prontofalha de instalação/verificação do modelo pp_setup.py — execute pp.py doctor primeiro

Espelho programático: pp_api levanta ValueError para entrada inválida (↔ saída 2) e RuntimeError para falha de tempo de execução (↔ saída 1), ambos carregando conselhos de recuperação na mensagem. Esses códigos são uma promessa de estabilidade — versões futuras não os reaproveitarão.

Antipadrões (cada um com a maneira correta)

Esta seção lista apenas regras do tipo julgamento (o que não fazer); perguntas operacionais de "como fazer" estão em references/faq.md (pesquisáveis via pp.py faq <palavra-chave>) — os dois se referenciam cruzadamente em vez de repetir.

  • Não alimente <100 caracteres e espere um veredito — risk=unknown é por design (falsos positivos em texto curto são incontroláveis). ✅ Em vez disso: envie 300+ caracteres, ou use a verificação de norma de estilo (pp.py norm) que não tem veredito e funciona em amostras curtas.
  • Não confie em pontuações em modo degradado em texto médico

...

Habilidades Relacionadas