Communitygithub.com

chuspeeism/doubaoplot

DoubaoPlot — Use Origin para criar gráficos científicos editáveis no 豆包/豆包工作, também compatível com Codex e Claude Code. Uma adaptação de hang-jin/editaplot, com adição de um seletor de 45 gráficos clicáveis.

O que é doubaoplot?

O DoubaoPlot (também conhecido como EditaPlot) é uma skill para agentes de IA (como Claude Code, Cursor, Codex e 豆包工作) que transforma perguntas científicas e tabelas de dados somente leitura em figuras científicas editáveis no Origin. Ele oferece uma experiência conversacional para iniciantes, mas mantém um motor determinístico para inspeção, planejamento, renderização, exportação e leitura de volta. A skill suporta três modos principais: modo de referência (quando o usuário fornece uma figura de exemplo), modo direto (quando o usuário especifica o tipo de gráfico) e o novo modo seletor, que exibe 45 exemplos reais de gráficos Origin para o usuário escolher visualmente, evitando que ele precise descrever o que quer. O seletor gera automaticamente uma solicitação com as colunas de dados necessárias, que pode ser enviada de volta ao assistente. A skill opera exclusivamente em Windows físico (10/11 x64) com Python 3.10–3.12 e Origin 2021+. Ela gerencia permissões de forma restrita, solicitando apenas acesso a arquivos locais, execução de subprocessos e comunicação COM com o Origin, sem editar registro, firewall ou exigir direitos de administrador. O fluxo completo inclui: rejeição de plataformas não suportadas, instalação via `editaplot.cmd setup`, diagnóstico com `doctor`, inspeção e recomendação com `start`, validação de mapeamento com `understand`, planejamento com `plan`, teste de fumaça com o Origin via `origin-smoke` e renderização final com `render`. A skill também gerencia filas de trabalhos Origin para evitar conflitos entre múltiplas execuções.

Funciona com✓Claude Code✓Codex CLI~Cursor
npx skills add chuspeeism/doubaoplot

Perguntar na sua IA favorita

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

Documentação

EditaPlot

Transforme uma pergunta científica e uma tabela somente leitura em uma figura Origin auditável e editável. Mantenha a experiência do iniciante conversacional; use o motor determinístico para inspeção, planejamento, renderização, exportação e leitura de volta.

Primeiro, decida qual caminho seguir (novo na versão 豆包工作)

Quando o usuário chegar, primeiro veja o que ele tem e depois decida como proceder. Não comece a adivinhar o tipo de gráfico sem que o usuário tenha indicado uma direção.

O que o usuário forneceuQual caminho seguirComo fazer
Uma figura de referência ("desenhe igual a esta", "reproduza este estilo")Modo referênciaSiga o fluxo original, entrando a partir do passo 10 reference-inspect. A figura de referência afeta apenas a gramática gráfica e os estilos seguros que são suportados pelos dados confirmados; não adiciona novas evidências nem oculta elementos obrigatórios.
Especificou o tipo de gráfico ("desenhe um gráfico de nuvem", "curva ROC")Modo diretoSiga o fluxo original. Primeiro, consulte references/not-covered.md; se o gráfico solicitado estiver naquela lista, diga claramente que não há suporte para essa rota, não tente forçar.
Apenas dados, sem especificar o gráfico, ou disse explicitamente "não sei qual gráfico usar"Modo seletorVeja abaixo. Este é o novo caminho nesta versão e também o mais comum.

Modo seletor

Quando o usuário não sabe qual gráfico usar, deixe-o escolher visualmente, o que é muito mais preciso do que fazê-lo descrever.

  1. Execute python selector/selector.py. Isso abrirá uma página local: 45 exemplos reais de gráficos Origin, organizados por categoria; quando o usuário clicar em um, o lado direito mostrará quais colunas de dados aquele gráfico precisa e montará automaticamente uma solicitação completa.
    • Se o host tiver um painel de navegador embutido, use python selector/selector.py --print-path para obter o caminho e abri-lo no painel, sem abrir uma nova janela.
  2. O usuário clica em "Enviar para 豆包" na página, e o script captura a solicitação montada e a envia para a saída padrão; se clicar em "Copiar", o conteúdo vai para a área de transferência. Peça para ele colar. Ambos os caminhos funcionam, não espere apenas um.
  3. Ao receber esta solicitação, volte ao passo 6 do fluxo original (start → understand → confirmação → plan → renderização → validação). O seletor é responsável apenas por esclarecer os requisitos; ele não altera nenhum comportamento de plotagem nem pula nenhuma etapa de confirmação.

As colunas indicadas pelo seletor são uma sugestão, não uma conclusão. A verificação de quais colunas os dados do usuário realmente possuem ainda é feita pelo passo 7 (understand), coluna por coluna; se faltar alguma coluna, informe o usuário normalmente, não presuma que os dados estão completos só porque ele clicou em algo na página.

Se o selector.py não iniciar (todas as portas ocupadas, sem interface gráfica), não pare: forneça o caminho da página para o usuário, peça para ele abrir, clicar em "Copiar" e colar de volta. O fluxo continua normalmente.

Solicite apenas permissões restritas do Windows

  • Leia o repositório completo, a tabela selecionada e a imagem de referência local opcional.
  • Escreva apenas no repositório EditaPlot, no diretório de skill do usuário atual (豆包工作 ou Codex) e na pasta pai do arquivo fonte selecionado para artefatos adjacentes à fonte.
  • Execute o launcher local, subprocessos PowerShell/Python e uma instância do Origin de propriedade do EditaPlot na mesma sessão ativa do usuário Windows.
  • Um comando host normal pode ser executado inicialmente em uma conta isolada. Se o worker Origin retornar origin_codex_sandbox_context, submeta uma solicitação de execução local formal e estritamente delimitada para aquele comando origin-smoke ou render exato. Reexecute apenas se essa solicitação exata for aprovada, seja pelo usuário quando solicitado ou pelo revisor automático configurado pelo host. A aprovação não é garantida, e esta passagem de mão não é uma bypass da sandbox. Nunca peça ao usuário para copiar o comando para uma janela separada do PowerShell ou ampliar a solicitação para acesso de administrador ou configuração do sistema.
  • Use acesso de rede apenas para download/atualização do repositório e recuperação de dependências bloqueadas. Trate uma instalação Python via winget no escopo do usuário como uma alteração separada do sistema que ainda requer consentimento explícito.
  • Não solicite direitos de administrador, controle do mouse, acesso de gravação a todo o disco, upload para nuvem de entradas privadas ou alterações em DCOM, registro, firewall, grupos de usuários ou instalação do Origin. Quando o Acesso a Pastas Controladas, uma política organizacional, sincronização em nuvem ou um local somente leitura bloquear gravações, solicite acesso apenas à pasta afetada ou peça uma pasta de saída alternativa explícita.

Comece pelo caminho para iniciantes

  1. Rejeite plataformas não suportadas antes de instalar qualquer coisa. Suporte a camada de CLI/dependências apenas em Windows físico 10/11 x64 com CPython 3.10–3.12 de 64 bits. Alvo Origin/OriginPro 2021 e posteriores através de originpro externo; Origin 2020b e anteriores não são suportados por esta rota. A linha de base verificada ao vivo é CPython 3.10 + Origin 2024b / 10.15. Trate outra versão 2021+ como limitada por capacidade, não automaticamente verificada, até que seus testes de fumaça e artefatos completos passem. Afirme claramente que macOS (Intel/Apple Silicon), Linux, WSL, Wine/CrossOver, Parallels e outras VMs não são suportados na V1. O doctor não pode detectar todas as VMs de forma confiável, então peça ao usuário para confirmar um host Windows físico quando esse fato for desconhecido.
  2. Localize editaplot.cmd no diretório de Skill instalado; ao trabalhar a partir de um repositório clonado, use o editaplot.cmd na raiz do repositório. Use um caminho absoluto para o launcher nos comandos. Não faça iniciantes selecionarem um executável Python ou invocarem scripts/editaplot.py diretamente.
  3. Exija o repositório completo para a primeira instalação. Execute editaplot.cmd setup na raiz do repositório; nunca instrua os usuários a copiar apenas skill/editaplot, pois isso omite o runtime. Leia references/runtime.md para detalhes de configuração, descoberta e comandos.
  4. Reutilize um Python compatível existente. Se nenhum existir, explique em português que instalar o Python é uma alteração no nível do sistema. Execute winget show primeiro e explique o editor, a fonte e os acordos exatos. Apenas a confirmação explícita do usuário permite uma instalação não interativa posterior de Python.Python.3.12 com escopo de usuário e arquitetura x64. Se o winget não estiver disponível, forneça as instruções oficiais de instalação do Windows python.org e aguarde o usuário; nunca use um mirror não confiável ou instale o Python silenciosamente.
  5. Execute editaplot.cmd doctor para cada novo fluxo de trabalho. Permita doctor --repair apenas para reparo de dependências Python locais do projeto relatado. Mantenha todos os pacotes Python em .editaplot-venv. Trate o Origin como um aplicativo gerenciado pelo usuário instalado localmente; nunca o instale ou modifique durante o reparo.
  6. Execute editaplot.cmd start <data-file> para uma nova tabela. Adicione --intent "<user intent>" quando o usuário declarar um objetivo. Trate sua carga de inspeção e recomendação como estado de trabalho interno. Use o caminho fonte local original exposto pelo anexo. Se o host fornecer apenas uma cópia temporária do anexo e a pasta original não puder ser recuperada, pergunte uma vez pela pasta fonte/saída local pretendida antes de renderizar; nunca adivinhe um destino de espaço de trabalho não relacionado.
  7. Após selecionar um modelo candidato, execute editaplot.cmd understand <data-file> --template-id <id> com o mesmo mapeamento confirmado que será usado para o planejamento. Agrupe seu resultado em uma lista de verificação curta: tipo de dados; colunas a desenhar; colunas usadas apenas para suporte ou validação; colunas retidas mas não desenhadas; elementos de figura propostos; e cálculos que não serão realizados. Cada coluna fonte deve aparecer exatamente uma vez. Se algum item for uncertain, peça um mapeamento corrigido e execute understand novamente; não confirme ou planeje.
  8. Informe a um iniciante apenas: o que foi reconhecido, as melhores uma a três opções de gráfico, por que elas se encaixam e a menor decisão científica ainda necessária. Não despeje um pipeline inspect → recommend → understand → plan ou JSON bruto a menos que ele solicite detalhes técnicos.
  9. Peça ao usuário para confirmar tanto o propósito científico em uma frase quanto a lista de verificação concisa de elementos. Congele o proposal_hash exato, os IDs de itens derivados aprovados e as escolhas de ambiguidade resolvidas em --semantic-confirmation-json. Nunca reutilize uma confirmação após a fonte, mapeamento, propósito ou hash da proposta mudar. Quando a confiança for baixa, as margens candidatas forem pequenas, as funções ou unidades forem ambíguas, ou uma transformação de exibição for proposta, faça apenas as perguntas focadas adicionais necessárias.
  10. Se o usuário fornecer uma figura de referência, primeiro execute reference-inspect. Você pode então descrever apenas sua gramática de painel/marca/codificação/layout/estilo no JSON estrito ReferenceFigureSpec e executar reference-review; o runtime não realiza OCR ou inferência de modelo. Mostre os recursos adotados e rejeitados, vincule cada marca essencial a dados de usuário confirmados e renderizáveis, e obtenha uma confirmação separada vinculada ao hash. Nunca copie valores de referência, rótulos, ajustes, atribuições de fase, texto do autor, logotipos, marcas d'água ou bitmap para o projeto Origin. Prefira template_adaptation verificado; mantenha controlled_composition bloqueado até que essa composição exata tenha passado pela portão completo de evidências do Origin. Uma referência não pode adicionar evidências ausentes ou alterar a lista de elementos científicos confirmados. Trate o estilo inferido da referência como uma sugestão, não como uma instrução do usuário. Peça ao usuário para escolher um de três modos: manter o padrão do modelo verificado; usar uma aproximação confirmada e permitida sugerida pela referência; ou fornecer valores personalizados exatos. Para o modo exato, pergunte separadamente sobre cores, largura da linha física, transparência do preenchimento, tamanho da página e visibilidade da legenda, moldura ou posição. Uma escolha explícita do usuário tem precedência sobre um token de referência conflitante. Congele cada sugestão de referência como applied, retained_template_default ou rejected; nunca afirme que uma solicitação foi aplicada a menos que o modelo selecionado tenha a mesma rota de visualização/origem verificada e a leitura de retorno do objeto Origin necessária.
  11. Quando a cor for selecionável pelo usuário, execute editaplot.cmd palettes, mostre assets/palettes/palette-selector-public.zh-CN.png e recomende no máximo dois valores palette_id compatíveis. Leia references/palettes.md antes de congelar um.
  12. Internamente, congele a escolha confirmada com editaplot.cmd plan; nunca edite um plano manualmente ou escreva uma decisão de volta ao arquivo fonte. Para uma solicitação XPS exata, escreva os valores confirmados em um objeto JSON separado e passe seu caminho com --visual-style-json. Os campos exatos suportados são series_colors, line_width_pt, fill_transparency_percent, page_size_cm, legend_visible, legend_position e legend_frame. Campos ou valores inválidos explícitos devem falhar rapidamente e ser corrigidos com o usuário; nunca os descarte silenciosamente ou recorra a um estilo de referência/padrão. O comando de renderização copia este plano aprovado para a pasta de saída final como render-plan.json.
  13. Trate a prontidão do Origin apenas como estado técnico. O Doctor realiza descoberta somente leitura de Origin.Application, Origin.ApplicationSI, candidatos instalados, Python, originpro e OriginExt; ele nunca inicia o Origin e ready_for_render nunca significa que uma conexão ao vivo foi bem-sucedida. Se o registro de inicialização padrão estiver presente, prossiga para o teste de fumaça pré-renderização real sem pedir ao usuário para abrir o Origin ou confirmá-lo novamente. Mantenha a saída do iniciante em uma a três frases em linguagem simples; deixe CLSIDs, visualizações do registro, candidatos e estágios em JSON. Leia o origin_execution_context editado separadamente de ready_for_render. Um status codex_sandbox requer a passagem de aprovação de comando exato acima antes que o COM seja chamado; apenas uma solicitação aprovada pode ser reexecutada. A revisão automática avalia essa solicitação individual e não pré-concede acesso ao Origin. Um contexto de execução Windows unknown é fail-closed e não é uma solicitação de aprovação: pare antes do COM e relate que a identidade atual do Windows não pôde ser verificada.
  14. Execute editaplot.cmd origin-smoke --output-dir <unique-smoke-directory> com launch_isolated: inicie e possua uma instância dedicada do Origin, execute o teste de fumaça ao vivo e handshake de versão, depois aplique a decisão de capacidade do modelo. Este comando é obrigatório após o planejamento e antes da renderização formal. attach_existing é um modo avançado explícito apenas; nunca redefina, sobrescreva ou feche um projeto de propriedade do usuário, e desconecte em vez de sair. Relate falhas por estágio técnico e próximo passo sem especulação. Nunca use automação de mouse ou forneça patches de aplicativos ou instruções de bypass. O runtime deve tentar limpar uma ativação parcial de propriedade do EditaPlot e pode tentar uma nova instância isolada para um código de inicialização repetível apenas se a limpeza for bem-sucedida. A falha na limpeza retorna origin_activation_cleanup_failed e para. Deve então aguardar com sec -poc 30 e confirmar run.isOCready() antes de ler a versão ou criar um projeto. Nunca faça loop, mude para ApplicationSI, edite permissões DCOM/registro ou diga a um iniciante para executar todo o fluxo de trabalho como administrador. Após a tentativa automática ser esgotada, solicite aprovação para no máximo uma nova tentativa no mesmo contexto de usuário Windows ativo e use um novo diretório irmão vazio para o teste de fumaça para que o primeiro relatório permaneça intacto. origin_com_class_not_registered e origin_com_activation_access_denied param sem nova tentativa automática. Não force o encerramento de um worker Python apenas porque ele está em execução por muito tempo: ele pode possuir uma instância oculta do Origin. Preserve diagnósticos e relate o último estágio de progresso antes de propor qualquer cancelamento controlado pelo usuário. Mantenha a passagem de aprovação da sandbox distinta de uma nova tentativa de ativação: a primeira acontece antes do COM, enquanto a última está disponível apenas após a política limitada de ativação/limpeza ter sido executada. Quando a ativação primária e a limpeza falharem, exponha apenas primary_activation_code, primary_activation_stage, cleanup_error_code e cleanup_error_stage. Nunca inclua um nome de conta Windows, caminho local, HRESULT bruto ou texto COM bruto nessa carga de diagnóstico estruturada, e nunca tente novamente porque ambos os pares estão presentes. Os workers atuais do EditaPlot serializam apenas sua seção origin-smoke / render ativa do Origin em uma sessão Windows conectada; a inspeção de dados, recomendação e planejamento podem permanecer concorrentes. Respeite o progresso de origin_job_queue, que é emitido imediatamente ao esperar e depois a cada 30 segundos aproximadamente. A ordenação não é garantida como FIFO estrito. O limite de 30 minutos se aplica apenas ao trabalho em espera: ele para esse esperador sem matar ou interromper o titular ativo. Não submeta um duplicado enquanto uma mensagem de fila estiver visível. Scripts manuais, versões mais antigas do EditaPlot e programas não relacionados estão fora deste limite de coordenação.
  15. Somente após o teste de fumaça passar, renderize uma rota de modelo permitida com editaplot.cmd render <plan>. Mantenha uma instância do Origin de propriedade do EditaPlot aberta após o sucesso, a menos que o usuário solicite o contrário. Por padrão, deixe o runtime criar um irmão direto do arquivo fonte chamado <source_stem>_EditaPlot_YYYYMMDD_HHMMSS; mantenha todos os artefatos formais nessa pasta. Não redirecione execuções comuns para o repositório, diretório de Skill, diretório de trabalho atual ou uma pasta de saída global compartilhada. Use --output-dir apenas quando o usuário solicitar explicitamente outro local.
  16. ...

[truncado para tradução]

Habilidades Relacionadas