v0.15.0 — arrange_doc (structural slide/sheet ops)
New 9th deterministic verb arrange_doc: duplicate / move / delete whole slides (.pptx) and sheets (.xlsx); rename sheets. Structure, not content. No Anthropic key; byte-preserving — a copy ADDS parts, untouched slides/sheets stay byte-identical (charts & notes cloned independently, images shared).
arrange_doc(doc, [{"op":"duplicate","target":0,"to":3}]) # copy slide 0 to position 3
arrange_doc(doc, [{"op":"move","target":4,"to":0}]) # move slide 4 to front
arrange_doc(doc, [{"op":"rename","target":"Sheet1","name":"Summary"}]) # xlsx
Built on contextifier 0.5.0's new raw primitives. Wired across the library, agent tools, local MCP, and doc_guide('arrange'). 880 tests pass. Full changelog: README Version history.