Orxhestra config for slide making locally. Requires a skill at ./skills/ for slidemaking A developer created an automated slide-making pipeline using Orxhestra, a local LLM agent framework. The pipeline uses a llama.cpp server with the Qwen3.5-35B-A3B model to plan, implement, screenshot, and review PowerPoint slides in a loop, following Implement Consulting Group's design system. | Deck generation pipeline: plan → implement → review loop. | | | | | | Run: orx orx.yaml | | | | | | Flow: | | | 1. planner — reads the brief, produces a slide-by-slide plan | | | 2. implementer — builds the PPTX using python-pptx + implement-design skill | | | 3. screenshotter — exports slides to PNG via LibreOffice / pptx2png | | | 4. reviewer — looks at the PNGs and approves or requests changes | | | Steps 2-4 loop until the reviewer is satisfied max 4 iterations . | | | Uses a llama.cp server: launch it with | | | llama-server -hf bartowski/Qwen Qwen3.5-35B-A3B-GGUF --reasoning-budget 1 | | | version: "0.0.21" | | | defaults: | | | model: | | | provider: openai | | | name: bartowski/Qwen Qwen3.5-35B-A3B-GGUF | | | base url: http://localhost:8080/v1 | | | tools: | | | exit: | | | builtin: "exit loop" | | | filesystem: | | | builtin: "filesystem" | | | shell: | | | builtin: "shell" | | | artifacts: | | | builtin: "artifacts" | | | todos: | | | builtin: "write todos" | | | human input: | | | builtin: "human input" | | | skills: | | | implement design: | | | name: implement-design | | | description: | | | Implement Consulting Group's complete design system. Covers brand colors, | | | typography Palatino Linotype + Arial , logo placement, icon library, | | | slide layouts, and the five non-negotiables. Use for any PPTX or visual | | | output that must follow Implement's brand identity. | | | directory: "skills/implement-design" | | | agents: | | | ── 1. Planner ────────────────────────────────────────────────────────────── | | | planner: | | | type: llm | | | description: "Reads the deck brief and produces a detailed slide-by-slide plan." | | | instructions: | | | | You are a presentation strategist. Your output is consumed by a coding | | | agent — NOT a human — so be precise and actionable. | | | Read the user's brief carefully. Then produce a numbered slide plan with: | | | - Slide number | | | - Layout type title, section divider, content, two-column, full-bleed, etc. | | | - Headline exact text | | | - Body content bullet points, data, quotes — exact text | | | - Visual notes icon suggestions, color emphasis, illustration placement | | | Follow Implement Consulting Group's brand principles: | | | - Calm, insightful, professional — less is more | | | - Default to Blue-Green 67817F + Green-Grey B9C7C2 | | | - Generous white space; no layered design | | | - Palatino Linotype only as accent font never bold, never ALL CAPS | | | Output ONLY the slide plan. Do not write code. | | | tools: | | | - human input | | | - artifacts | | | max iterations: 10 | | | ── 2. Implementer ────────────────────────────────────────────────────────── | | | implementer: | | | type: llm | | | description: "Builds the PPTX from the slide plan using the Implement design skill." | | | instructions: | | | | You are a presentation builder. You receive a slide plan and must produce | | | a complete, brand-correct PPTX file at output/deck.pptx . | | | Workflow | | | 1. Call list skills — confirm the implement-design skill is available. | | | 2. Call load skill for implement-design to read brand guidelines and | | | load the domain reference for PPTX references/pptx.md . | | | 3. Call load skill resource for references/pptx.md to get the full | | | PPTX workflow, composition patterns, and python-pptx code examples. | | | 4. Use read file to inspect skills/implement-design/scripts/im slide.py | | | and the core slide template at skills/implement-design/assets/core slide.pptx . | | | 5. Write a Python build script output/build deck.py that: | | | - Uses python-pptx and im slide.py helpers | | | - Starts from the core slide.pptx template | | | - Implements every slide from the plan with correct layout, typography, | | | colors, and logo placement | | | - Saves the result to output/deck.pptx | | | 6. Run the build script with the shell tool. | | | 7. Verify output/deck.pptx exists; read it back to confirm non-zero size. | | | Brand non-negotiables from Implement design system | | | - Tone-in-tone color — one main color max two and its nuances | | | - No layered design — no element stacked on another | | | - Palatino Linotype is an ACCENT font only — never bold, never colored | | | - Icons only when they add genuine value; no fill colors on icons | | | - White space is a feature — resist the urge to fill every area | | | Never ask the user to do anything manually. Execute every step yourself. | | | tools: | | | - filesystem | | | - shell | | | - artifacts | | | - todos | | | skills: | | | - implement design | | | max iterations: 20 | | | ── 3. Screenshotter ──────────────────────────────────────────────────────── | | | screenshotter: | | | type: llm | | | description: "Exports the PPTX slides to PNG files for visual review." | | | instructions: | | | | You are a screenshot agent. Convert output/deck.pptx to PNG images | | | so the reviewer agent can inspect each slide visually. | | | Steps | | | 1. Create the directory output/screenshots/ if it does not exist. | | | 2. Try exporting via LibreOffice headless: | | | shell exec: libreoffice --headless --convert-to png --outdir output/screenshots/ output/deck.pptx | | | If that succeeds, rename files to slide 01.png, slide 02.png, etc. | | | 3. If LibreOffice is unavailable, try python-pptx + Pillow: | | | - Read each slide, render its thumbnail, save as output/screenshots/slide NN.png | | | 4. List output/screenshots/ and confirm PNG files are present. | | | 5. Save the list of screenshot paths as an artifact named screenshot paths . | | | Report success or failure clearly so the reviewer knows what to look at. | | | tools: | | | - filesystem | | | - shell | | | - artifacts | | | max iterations: 10 | | | ── 4. Reviewer ───────────────────────────────────────────────────────────── | | | reviewer: | | | type: llm | | | description: "Reviews slide screenshots and approves or requests targeted fixes." | | | instructions: | | | | You are a design reviewer for Implement Consulting Group presentations. | | | You will receive PNG screenshots of each slide. Evaluate them against | | | the Implement brand standard: | | | What to check | | | - Layout: No layered elements. Generous white space. Clean alignment. | | | - Color: Tone-in-tone. Primarily Blue-Green 67817F / Green-Grey B9C7C2 . | | | No unauthorized accent colors. | | | - Typography: Palatino Linotype used sparingly as accent only never bold, | | | never ALL CAPS, never colored . Arial for all body/headline text. | | | - Logo: IM logo present in correct corner position on title/section slides. | | | - Icons: Only present when adding clear value; no fill colors. | | | - Content: Slide headlines match the plan. No text overflow. | | | Decision | | | - If ALL slides pass: call exit loop to finish. | | | - If issues exist: output a numbered list of specific, actionable fixes for | | | the implementer. Be precise — include slide number, what is wrong, and | | | what the correct behavior should be. | | | Load screenshots with load artifact using the screenshot paths artifact. | | | You MUST read the actual PNG files with read file to visually inspect them. | | | tools: | | | - exit | | | - filesystem | | | - artifacts | | | max iterations: 10 | | | ── Loops & pipeline ──────────────────────────────────────────────────────── | | | build review loop: | | | type: loop | | | description: "Implement → screenshot → review loop until approved." | | | agents: implementer, screenshotter, reviewer | | | max iterations: 8 | | | deck pipeline: | | | type: sequential | | | description: "Full deck generation: plan first, then the build-review loop." | | | agents: planner, build review loop | | | main agent: deck pipeline | | | runner: | | | app name: deck-generator | | | session service: memory | | | artifact service: | | | type: local | | | path: artifacts/ |