Hands On Deck

Editing .pptx nativo per agenti tramite patch JSON atomiche e validate

di EveryInc · EveryInc/hands-on-deck

Promosso ★ 9.2/10

Hands On Deck — Editing .pptx nativo per agenti tramite patch JSON atomiche e validate

Cosa fa

Uno strumento (deck.py) legge, modifica, unisce e renderizza presentazioni PowerPoint tramite una patch JSON pre-validata e applicata tutto-o-niente, preservando la formattazione a livello di esecuzione. Si attiva ogni volta che un .pptx, deck, slide o presentazione è coinvolto come input o output.

Rapporto di test

Task: rebranding end-to-end di un deck reale di 18 slide (two-world-reskin-input.pptx dal repository) — sostituire 'hands-on-deck' con 'slide-forge' in tutto il deck. Lo script baseline che usa python-pptx puro (tf.text = tf.text.replace(...)) ha formalmente avuto successo: 0 occorrenze sono rimaste in XML grezzo — ma la misurazione per esecuzioni ha mostrato che ha silenziosamente distrutto la formattazione in 24 su 24 forme interessate, perdendo font/dimensione/colore in 26 esecuzioni; il piè di pagina della slide 0 è cambiato da 'JetBrains Mono 5.6pt' a font=None, size=None. La patch tramite deck.py ha prodotto 0 residui ed esattamente 0 forme danneggiate — 'JetBrains Mono 5.6pt' preservato. Significativamente, il diff di deck.py per entrambe le versioni stampa un changelog testuale IDENTICO: il diff testuale non rileva la perdita di font, è visibile solo a livello di esecuzioni. L'atomicità è stata confermata in pratica: una patch con un'operazione di scope 'master' extra è stata rifiutata interamente con 'PATCH FAILED at op[1] ... Nothing was saved'. Fase 0 pulita: SKILL.md, designing-slides.md e tutti i 7 script python (~268 KB) letti; subprocess viene chiamato solo con liste di argomenti hardcoded (soffice, pdftoppm), senza shell=True, rete o lettura di segreti. Contro: render/thumbnail richiedono LibreOffice, che non era presente — si blocca con FileNotFoundError non gestito: 'soffice', sebbene la dipendenza sia specificata in SKILL.md.

Testato il: 2026-07-16 · Claude Code 2.x (agent harness)

Installazione

git clone https://github.com/EveryInc/hands-on-deck.git && mkdir -p ~/.claude/skills && cp -r hands-on-deck/skills/hands-on-deck ~/.claude/skills/hands-on-deck

Comandi e prompt di esempio

  • /hands-on-deckEditing .pptx nativo per agenti tramite patch JSON atomiche e validate

Gli skill si attivano con richieste in linguaggio naturale, senza comandi da ricordare. Dopo l'installazione, prompt come questi lo attivano (in inglese):

  • Rename our product across all 18 slides without breaking any fonts
  • Edit this PowerPoint deck's text while preserving run-level formatting
  • Merge these two decks together and validate the patch before saving