Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Crea un'applicazione Python con Tkinter per visualizzare, modificare e gestire file XML di viste Odoo. Include parsing ricorsivo, gestione gerarchica degli elementi, modifica di attributi, validazione e gestione delle eccezioni.
.claude/skills/ecnu-icalk-creazione-di-editor-gui-per-viste-xml-odoo/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 162% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 28% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 58% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 101% | 0% |
| case-18 | ✗→✓ | ▲ Improved | 180% | 0% |
Crea un'applicazione Python con Tkinter per visualizzare, modificare e gestire file XML di viste Odoo. Include parsing ricorsivo, gestione gerarchica degli elementi, modifica di attributi, validazione e gestione delle eccezioni.
Sei un esperto sviluppatore Python specializzato nella creazione di interfacce grafiche (GUI) con Tkinter e nella manipolazione di file XML per il framework Odoo. Il tuo obiettivo è generare codice per un'applicazione desktop completa che permetta di caricare, visualizzare, modificare e salvare viste XML di Odoo localmente, senza l'uso di framework web come Flask.
tkinter, xml.etree.ElementTree, tkinter.ttk, tkinter.filedialog, tkinter.messagebox, tkinter.simpledialog). Non usare Flask, Django o altri framework web.<form>).Treeview. Il parsing deve essere ricorsivo per gestire qualsiasi profondità e tipo di elemento Odoo (form, tree, sheet, group, notebook, page, field, ecc.).@key=value). Permettere la modifica del valore di un attributo selezionato tramite una finestra di dialogo.name per i campi) siano presenti o che la struttura sia coerente prima del salvataggio o dell'aggiunta.try-except robusti per gestire errori durante il caricamento (es. file non trovato, XML malformato) e il salvataggio (es. permessi negati), mostrando messaggi di errore chiari all'utente tramite messagebox.XMLEditorApp (o simile) che implementa tutti i requisiti sopra elencati.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-04 | fail→pass | 15,797 | 27,661 | +75% | 1 | 1 | 0% | 2,725 | 7,137 | +162% | 0 | 0 | — |
case-05 | fail→fail | 14,641 | 20,591 | +41% | 1 | 1 | 0% | 2,551 | 5,629 | +121% | 0 | 0 | — |
case-01 | fail→pass | 23,602 | 26,380 | +12% | 1 | 1 | 0% | 5,616 | 7,188 | +28% | 0 | 0 | — |
case-02 | fail→fail | 25,026 | 29,454 | +18% | 1 | 1 | 0% | 6,272 | 7,209 | +15% | 0 | 0 | — |
case-03 | fail→fail | 26,512 | 28,360 | +7% | 1 | 1 | 0% | 6,257 | 7,194 | +15% | 0 | 0 | — |
case-06 | pass→pass | 10,379 | 12,514 | +21% | 1 | 1 | 0% | 2,132 | 3,614 | +70% | 0 | 0 | — |
case-07 | pass→pass | 13,802 | 14,375 | +4% | 1 | 1 | 0% | 2,734 | 3,988 | +46% | 0 | 0 | — |
case-08 | pass→pass | 17,278 | 17,659 | +2% | 1 | 1 | 0% | 3,398 | 4,435 | +31% | 0 | 0 | — |
case-09 | pass→pass | 14,577 | 17,240 | +18% | 1 | 1 | 0% | 2,913 | 4,437 | +52% | 0 | 0 | — |
case-10 | pass→pass | 15,391 | 17,087 | +11% | 1 | 1 | 0% | 3,052 | 4,652 | +52% | 0 | 0 | — |
case-11 | pass→pass | 16,346 | 16,770 | +3% | 1 | 1 | 0% | 3,395 | 4,432 | +31% | 0 | 0 | — |
case-12 | pass→pass | 16,421 | 13,537 | -18% | 1 | 1 | 0% | 2,900 | 3,640 | +26% | 0 | 0 | — |
case-13 | fail→pass | 14,200 | 15,956 | +12% | 1 | 1 | 0% | 2,509 | 3,963 | +58% | 0 | 0 | — |
case-14 | pass→pass | 13,747 | 15,439 | +12% | 1 | 1 | 0% | 2,650 | 3,956 | +49% | 0 | 0 | — |
case-15 | fail→pass | 15,585 | 25,725 | +65% | 1 | 1 | 0% | 3,538 | 7,114 | +101% | 0 | 0 | — |
case-16 | pass→pass | 17,007 | 10,737 | -37% | 1 | 1 | 0% | 3,232 | 3,140 | -3% | 0 | 0 | — |
case-17 | pass→pass | 14,514 | 12,604 | -13% | 1 | 1 | 0% | 2,640 | 3,242 | +23% | 0 | 0 | — |
case-18 | fail→pass | 14,325 | 26,361 | +84% | 1 | 1 | 0% | 2,318 | 6,482 | +180% | 0 | 0 | — |
case-19 | pass→pass | 12,681 | 14,420 | +14% | 1 | 1 | 0% | 2,274 | 3,736 | +64% | 0 | 0 | — |
case-20 | pass→pass | 13,257 | 12,527 | -6% | 1 | 1 | 0% | 2,709 | 3,647 | +35% | 0 | 0 | — |
case-21 | pass→pass | 18,907 | 16,633 | -12% | 1 | 1 | 0% | 3,847 | 4,467 | +16% | 0 | 0 | — |
case-22 | pass→fail | 18,181 | 25,433 | +40% | 1 | 1 | 0% | 4,054 | 6,485 | +60% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +18 percentage points is the difference between those two pass rates over the 22 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.