EditaPlot
Convierte una pregunta científica y una tabla de solo lectura en una figura de Origin auditable y editable. Mantén la experiencia conversacional para principiantes; usa el motor determinista para inspección, planificación, renderizado, exportación y lectura de vuelta.
先决定走哪条路(豆包工作版新增)
Al entrar el usuario, primero mira qué tiene y luego decide cómo proceder. No empieces a adivinar el tipo de gráfico sin que el usuario dé una dirección.
| ¿Qué ha dado el usuario? | ¿Qué camino tomar? | ¿Cómo hacerlo? |
|---|---|---|
| Una imagen de referencia ("dibuja esto", "replica este estilo") | Modo imagen de referencia | Sigue el flujo original, entrando desde el paso 10 reference-inspect. La referencia solo afecta la gramática de gráficos y los estilos seguros que los datos pueden soportar; no añade nueva evidencia ni oculta elementos necesarios. |
| Ha nombrado el tipo de gráfico ("dibuja un diagrama de lluvia", "curva ROC") | Modo directo | Sigue el flujo original. Primero consulta references/not-covered.md; si el gráfico solicitado está en esa lista, indícale directamente que no existe esa ruta, no insistas. |
| Solo tiene datos, sin decir qué gráfico, o dice explícitamente "no sé qué tipo dibujar" | Modo selector | Ver más abajo. Esta es la nueva ruta añadida y la más común. |
Modo selector
Cuando el usuario no sabe qué gráfico quiere, que mire y elija es mucho más preciso que hacer que describa.
- Ejecuta
python selector/selector.py. Esto abrirá una página local: 45 ejemplos de gráficos reales de Origin se muestran, clasificados por tipo; cuando el usuario hace clic en uno, la derecha muestra qué columnas de datos necesita y genera automáticamente una solicitud completa.- Si el host tiene un panel de navegador integrado, usa
python selector/selector.py --print-pathpara obtener la ruta y abrirla en el panel, sin abrir otra ventana.
- Si el host tiene un panel de navegador integrado, usa
- El usuario hace clic en "Enviar a Doubao" y el script captura la solicitud generada y la envía a la salida estándar; si hace clic en "Copiar", el contenido queda en su portapapeles, pídele que lo pegue. Ambas rutas funcionan, no esperes solo una.
- Una vez obtenida la solicitud, vuelve al paso 6 del flujo original (
start→understand→ confirmar →plan→ renderizar → verificar). El selector solo se encarga de aclarar la necesidad, no cambia ningún comportamiento de dibujo ni omite ningún paso de confirmación.
Las "columnas necesarias" que da el selector son una sugerencia, no una conclusión. Si los datos del usuario realmente carecen de esas columnas, el paso 7 understand las verificará una por una; si faltan, indícaselo al usuario como de costumbre, no asumas que los datos están completos solo porque hizo clic en la página.
Si selector.py no arranca (todos los puertos ocupados, sin interfaz gráfica): no te detengas; da la ruta de la página al usuario, que la abra haciendo doble clic, haga clic en "Copiar" y pegue el contenido; el flujo continúa igual.
Solicitar solo permisos limitados de Windows
- Lee el repositorio completo, la tabla seleccionada y una imagen de referencia local opcional.
- Escribe solo en el repositorio de EditaPlot, el directorio de habilidades del usuario actual (豆包工作 o Codex) y la carpeta principal del archivo fuente seleccionado para entregables adjuntos.
- Ejecuta el lanzador local, subprocesos de PowerShell/Python y una instancia de Origin propiedad de EditaPlot en la misma sesión de usuario activa de Windows interactivo.
- Un comando normal del host puede ejecutarse primero bajo una cuenta aislada. Si el trabajador de Origin devuelve
origin_codex_sandbox_context, envía una solicitud formal y de alcance limitado para ejecutar exactamente ese comandoorigin-smokeorender. Vuelve a ejecutarlo solo si se aprueba esa solicitud exacta, ya sea por el usuario cuando se le solicite o por el revisor automático configurado del host. La aprobación no está garantizada, y esta transferencia no es un bypass del sandbox. Nunca pidas al usuario que copie el comando en una ventana separada de PowerShell o que amplíe la solicitud a acceso de administrador o configuración del sistema. - Usa acceso a red solo para descarga/actualización del repositorio y recuperación de dependencias bloqueadas. Trata una instalación de Python con
wingetde ámbito de usuario como un cambio separado del sistema que aún requiere consentimiento explícito. - No solicites derechos de administrador, control del mouse, acceso de escritura a todo el disco, carga en la nube de entradas privadas, ni cambios en DCOM, registro, firewall, grupos de usuarios o instalación de Origin. Cuando el Control de Acceso a Carpetas, una política organizativa, sincronización en la nube o una ubicación de solo lectura bloqueen escrituras, solicita acceso solo a la carpeta afectada o pide una carpeta de salida alternativa explícita.
Comienza con el camino para principiantes
- Rechaza plataformas no compatibles antes de instalar nada. Soporta la capa de CLI/dependencias solo en Windows 10/11 x64 físico con CPython 3.10–3.12 de 64 bits. Destina Origin/OriginPro 2021 y posteriores a través de
originproexterno; Origin 2020b y anteriores no son compatibles con esta ruta. La línea base completamente verificada en vivo es CPython 3.10 + Origin 2024b / 10.15. Trata cualquier otra versión 2021+ como limitada por capacidad, no verificada automáticamente, hasta que superen su humo y artefactos completos. Indica claramente que macOS (Intel/Apple Silicon), Linux, WSL, Wine/CrossOver, Parallels y otras máquinas virtuales no son compatibles en V1.doctorno puede detectar de forma fiable todas las VM, así que pide al usuario que confirme un host Windows físico cuando ese hecho sea desconocido. - Localiza
editaplot.cmden el directorio de Habilidades instalado; cuando trabajes desde un repositorio clonado, usaeditaplot.cmden la raíz del repositorio. Usa una ruta absoluta al lanzador en los comandos. No hagas que los principiantes seleccionen un ejecutable de Python o invoquenscripts/editaplot.pydirectamente. - Requiere el repositorio completo para la primera instalación. Ejecuta
editaplot.cmd setupen la raíz del repositorio; nunca instruyas al usuario para copiar soloskill/editaplot, porque eso omite el tiempo de ejecución. Leereferences/runtime.mdpara detalles de configuración, descubrimiento y comandos. - Reutiliza un Python compatible existente. Si no existe ninguno, explica en chino que instalar Python es un cambio a nivel de sistema. Primero ejecuta
winget showy explica el editor exacto, la fuente y los acuerdos. Solo una confirmación explícita del usuario permite una instalación no interactiva posterior dePython.Python.3.12con ámbito de usuario y arquitectura x64. Si winget no está disponible, proporciona las instrucciones de instalación oficiales de python.org para Windows y espera al usuario; nunca uses un espejo no confiable ni instales Python en silencio. - Ejecuta
editaplot.cmd doctorpara cada nuevo flujo de trabajo. Permitedoctor --repairsolo para la reparación de dependencias de Python locales al proyecto reportadas. Mantén todos los paquetes de Python en.editaplot-venv. Trata a Origin como una aplicación administrada por el usuario instalada localmente; nunca la instales ni la modifiques durante la reparación. - Ejecuta
editaplot.cmd start <archivo-de-datos>para una nueva tabla. Agrega--intent "<intención-del-usuario>"cuando el usuario indique un objetivo. Trata su carga de inspección y recomendación como estado interno de trabajo. Usa la ruta fuente local original expuesta por el adjunto. Si el host solo proporciona una copia temporal del adjunto y la carpeta original no se puede recuperar, pregunta una vez por la carpeta fuente/salida local prevista antes de renderizar; nunca adivines un destino de espacio de trabajo no relacionado. - Después de seleccionar una plantilla candidata, ejecuta
editaplot.cmd understand <archivo-de-datos> --template-id <id>con la misma asignación confirmada que se usará para la planificación. Agrupa su resultado en una lista de verificación corta: tipo de datos; columnas a dibujar; columnas usadas solo para soporte o validación; columnas retenidas pero no dibujadas; elementos de figura propuestos; y cálculos que no se realizarán. Cada columna fuente debe aparecer exactamente una vez. Si algún elemento esuncertain, pide una asignación corregida y ejecutaunderstandde nuevo; no confirmes ni planifiques. - Informa a un principiante solo de: lo que se reconoció, la mejor opción de uno a tres gráficos, por qué se ajustan y la decisión científica más pequeña que aún se requiere. No vuelques todo el pipeline
inspect → recommend → understand → planni JSON sin procesar a menos que pidan detalles técnicos. - Pide al usuario que confirme tanto un propósito científico de una frase como la lista de verificación concisa de elementos. Congela el
proposal_hashexacto, los IDs de elementos derivados aprobados y las elecciones de ambigüedad resueltas en--semantic-confirmation-json. Nunca reutilices una confirmación después de que cambie la fuente, la asignación, el propósito o el hash de la propuesta. Cuando la confianza sea baja, los márgenes de los candidatos sean pequeños, los roles o las unidades sean ambiguos, o se proponga una transformación de visualización, haz solo las preguntas adicionales enfocadas necesarias. - Si el usuario proporciona una figura de referencia, ejecuta primero
reference-inspect. Luego puedes describir solo su gramática de panel/marca/codificación/diseño/estilo en el estricto JSONReferenceFigureSpecy ejecutarreference-review; el tiempo de ejecución no realiza OCR ni inferencia de modelos. Muestra las características adoptadas y rechazadas, vincula cada marca esencial a datos de usuario confirmados y renderizables, y obtén una confirmación separada vinculada al hash. Nunca copies valores de referencia, etiquetas, ajustes, asignaciones de fase, texto del autor, logotipos, marcas de agua ni el mapa de bits en el proyecto de Origin. Prefieretemplate_adaptationverificado; manténcontrolled_compositionbloqueado hasta que esa composición exacta haya pasado la puerta de evidencia completa de Origin. Una referencia no puede agregar evidencia faltante ni cambiar la lista de elementos científicos confirmados. Trata el estilo inferido de la referencia como una sugerencia, no como una instrucción del usuario. Pide al usuario que elija uno de tres modos: mantener la plantilla predeterminada verificada; usar una aproximación confirmada y permitida sugerida por la referencia; o proporcionar valores personalizados exactos. Para el modo exacto, pregunta por separado por colores, ancho de línea físico, transparencia de relleno, tamaño de página y visibilidad, marco o posición de la leyenda. Una elección explícita del usuario tiene prioridad sobre un token de referencia conflictivo. Congela cada sugerencia de referencia comoapplied,retained_template_defaultorejected; nunca afirmes que se aplicó una solicitud a menos que la plantilla seleccionada tenga la misma vista previa verificada/ruta de Origin y la lectura de vuelta del objeto de Origin requerida. - Cuando el color sea seleccionable por el usuario, ejecuta
editaplot.cmd palettes, muestraassets/palettes/palette-selector-public.zh-CN.png, y recomienda no más de dos valorespalette_idcompatibles. Leereferences/palettes.mdantes de congelar uno. - Congela internamente la elección confirmada con
editaplot.cmd plan; nunca edites manualmente un plan ni escribas una decisión de vuelta al archivo fuente. Para una solicitud XPS exacta, escribe los valores confirmados en un objeto JSON separado y pasa su ruta con--visual-style-json. Los campos exactos soportados sonseries_colors,line_width_pt,fill_transparency_percent,page_size_cm,legend_visible,legend_positionylegend_frame. Los campos o valores explícitos no válidos deben fallar rápidamente y corregirse con el usuario; nunca los descartes en silencio ni recurras a un estilo de referencia/predeterminado. El comando de renderizado copia este plan aprobado en la carpeta de salida final comorender-plan.json. - Trata la preparación de Origin solo como estado técnico. Doctor realiza descubrimiento de solo lectura de
Origin.Application,Origin.ApplicationSI, candidatos instalados, Python,originproyOriginExt; nunca inicia Origin yready_for_rendernunca significa que una conexión en vivo haya tenido éxito. Si el registro de lanzamiento predeterminado está presente, procede a la humo real previo al renderizado sin preguntar al usuario que abra Origin o lo confirme de nuevo. Mantén la salida para principiantes en una a tres oraciones en lenguaje sencillo; deja CLSIDs, vistas de registro, candidatos y etapas en JSON. Lee elorigin_execution_contextredactado por separado deready_for_render. Un estadocodex_sandboxrequiere la transferencia de aprobación de comando exacto anterior antes de que se llame a COM; solo una solicitud aprobada puede ser reejecutada. La revisión automática evalúa esa solicitud individual y no otorga acceso a Origin por adelantado. Un contexto de ejecución de Windowsunknownes de cierre seguro y no es una solicitud de aprobación: detente antes de COM e informa que la identidad actual de Windows no pudo ser verificada. - Ejecuta
editaplot.cmd origin-smoke --output-dir <directorio-smoke-único>conlaunch_isolated: inicia y posee una instancia dedicada de Origin, realiza el humo en vivo y la verificación de versión, luego aplica la decisión de capacidad de la plantilla. Este comando es obligatorio después de planificar y antes del renderizado formal.attach_existinges un modo avanzado explícito solo; nunca restablezcas, sobrescribas ni cierres un proyecto propiedad del usuario, y desconéctate en lugar de salir. Reporta fallos por etapa técnica y el siguiente paso sin especulaciones. Nunca uses automatización del mouse ni proporciones parches de aplicación o instrucciones de bypass. El tiempo de ejecución debe intentar limpiar una activación parcial propiedad de EditaPlot y puede intentar una instancia aislada fresca para un código de inicio reintentable solo si la limpieza tiene éxito. El fallo de limpieza devuelveorigin_activation_cleanup_failedy se detiene. Luego debe esperar consec -poc 30y confirmarrun.isOCready()antes de leer la versión o crear un proyecto. Nunca hagas bucle, cambies aApplicationSI, edites permisos de DCOM/registro, ni le digas a un principiante que ejecute todo el flujo de trabajo como administrador. Después de agotar el intento automático, solicita aprobación para, como máximo, un reintento en el mismo contexto de usuario activo de Windows y usa un directorio de humo hermano vacío fresco para que el primer informe permanezca intacto.origin_com_class_not_registeredyorigin_com_activation_access_deniedse detienen sin reintento automático. No termines a la fuerza un trabajador de Python solo porque ha estado ejecutándose durante mucho tiempo: puede poseer una instancia oculta de Origin. Conserva diagnósticos e informa la última etapa de progreso antes de proponer cualquier cancelación controlada por el usuario. Mantén la transferencia de aprobación del sandbox distinta de un reintento de activación: la primera ocurre antes de COM, mientras que la segunda está disponible solo después de que la política de activación/limpieza limitada se haya ejecutado. Cuando la activación primaria y la limpieza fallen ambas, expón soloprimary_activation_code,primary_activation_stage,cleanup_error_codeycleanup_error_stage. Nunca incluyas un nombre de cuenta de Windows, ruta local, HRESULT sin procesar ni texto de COM sin procesar en esa carga útil de diagnóstico estructurada, y nunca reintentes porque ambos pares están presentes. Los trabajadores actuales de EditaPlot serializan solo su sección activa de Originorigin-smoke/renderdentro de una sesión de Windows iniciada; la inspección de datos, recomendación y planificación pueden permanecer concurrentes. Respeta el progreso deorigin_job_queue, que se emite inmediatamente al esperar y luego aproximadamente cada 30 segundos. No se garantiza que el orden sea FIFO estricto. El límite de 30 minutos se aplica solo al trabajo en espera: detiene a ese esperador sin matar ni interrumpir al titular activo. No envíes un duplicado mientras un mensaje de cola sea visible. Scripts manuales, versiones antiguas de EditaPlot y programas no relacionados están fuera de este límite de coordinación. - Solo después de que el humo pase, renderiza una ruta de plantilla permitida con
editaplot.cmd render <plan>. Mantén una instancia de Origin propiedad de EditaPlot abierta después del éxito a menos que el usuario solicite lo contrario. Por defecto, deja que el tiempo de ejecución cree un directorio hermano directo del archivo fuente llamado<nombre_base>_EditaPlot_YYYYMMDD_HHMMSS; mantén todos los artefactos formales en esa carpeta. No redirijas ejecuciones normales al repositorio, directorio de habilidades, directorio de trabajo actual o una carpeta de salida global compartida. Usa--output-dirsolo cuando el usuario solicite explícitamente otra ubicación. - ...
[truncado para traducción]