{"slug": "orxhestra-config-for-slide-making-locally-requires-a-skill-at-skills-for", "title": "Orxhestra config for slide making locally. Requires a skill at ./skills/ for slidemaking", "summary": "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.", "body_md": "| # Deck generation pipeline: plan → implement → review loop. | |\n| # | |\n| # Run: orx orx.yaml | |\n| # | |\n| # Flow: | |\n| # 1. planner — reads the brief, produces a slide-by-slide plan | |\n| # 2. implementer — builds the PPTX using python-pptx + implement-design skill | |\n| # 3. screenshotter — exports slides to PNG via LibreOffice / pptx2png | |\n| # 4. reviewer — looks at the PNGs and approves or requests changes | |\n| # Steps 2-4 loop until the reviewer is satisfied (max 4 iterations). | |\n| # Uses a llama.cp server: launch it with | |\n| # `llama-server -hf bartowski/Qwen_Qwen3.5-35B-A3B-GGUF --reasoning-budget 1` | |\n| version: \"0.0.21\" | |\n| defaults: | |\n| model: | |\n| provider: openai | |\n| name: bartowski/Qwen_Qwen3.5-35B-A3B-GGUF | |\n| base_url: http://localhost:8080/v1 | |\n| tools: | |\n| exit: | |\n| builtin: \"exit_loop\" | |\n| filesystem: | |\n| builtin: \"filesystem\" | |\n| shell: | |\n| builtin: \"shell\" | |\n| artifacts: | |\n| builtin: \"artifacts\" | |\n| todos: | |\n| builtin: \"write_todos\" | |\n| human_input: | |\n| builtin: \"human_input\" | |\n| skills: | |\n| implement_design: | |\n| name: implement-design | |\n| description: > | |\n| Implement Consulting Group's complete design system. Covers brand colors, | |\n| typography (Palatino Linotype + Arial), logo placement, icon library, | |\n| slide layouts, and the five non-negotiables. Use for any PPTX or visual | |\n| output that must follow Implement's brand identity. | |\n| directory: \"skills/implement-design\" | |\n| agents: | |\n| # ── 1. Planner ────────────────────────────────────────────────────────────── | |\n| planner: | |\n| type: llm | |\n| description: \"Reads the deck brief and produces a detailed slide-by-slide plan.\" | |\n| instructions: | | |\n| You are a presentation strategist. Your output is consumed by a coding | |\n| agent — NOT a human — so be precise and actionable. | |\n| Read the user's brief carefully. Then produce a numbered slide plan with: | |\n| - Slide number | |\n| - Layout type (title, section divider, content, two-column, full-bleed, etc.) | |\n| - Headline (exact text) | |\n| - Body content (bullet points, data, quotes — exact text) | |\n| - Visual notes (icon suggestions, color emphasis, illustration placement) | |\n| Follow Implement Consulting Group's brand principles: | |\n| - Calm, insightful, professional — less is more | |\n| - Default to Blue-Green (#67817F) + Green-Grey (#B9C7C2) | |\n| - Generous white space; no layered design | |\n| - Palatino Linotype only as accent font (never bold, never ALL CAPS) | |\n| Output ONLY the slide plan. Do not write code. | |\n| tools: | |\n| - human_input | |\n| - artifacts | |\n| max_iterations: 10 | |\n| # ── 2. Implementer ────────────────────────────────────────────────────────── | |\n| implementer: | |\n| type: llm | |\n| description: \"Builds the PPTX from the slide plan using the Implement design skill.\" | |\n| instructions: | | |\n| You are a presentation builder. You receive a slide plan and must produce | |\n| a complete, brand-correct PPTX file at `output/deck.pptx`. | |\n| ## Workflow | |\n| 1. Call `list_skills` — confirm the implement-design skill is available. | |\n| 2. Call `load_skill` for implement-design to read brand guidelines and | |\n| load the domain reference for PPTX (`references/pptx.md`). | |\n| 3. Call `load_skill_resource` for `references/pptx.md` to get the full | |\n| PPTX workflow, composition patterns, and python-pptx code examples. | |\n| 4. Use `read_file` to inspect `skills/implement-design/scripts/im_slide.py` | |\n| and the core slide template at `skills/implement-design/assets/core_slide.pptx`. | |\n| 5. Write a Python build script (`output/build_deck.py`) that: | |\n| - Uses python-pptx and `im_slide.py` helpers | |\n| - Starts from the core_slide.pptx template | |\n| - Implements every slide from the plan with correct layout, typography, | |\n| colors, and logo placement | |\n| - Saves the result to `output/deck.pptx` | |\n| 6. Run the build script with the shell tool. | |\n| 7. Verify `output/deck.pptx` exists; read it back to confirm non-zero size. | |\n| ## Brand non-negotiables (from Implement design system) | |\n| - Tone-in-tone color — one main color (max two) and its nuances | |\n| - No layered design — no element stacked on another | |\n| - Palatino Linotype is an ACCENT font only — never bold, never colored | |\n| - Icons only when they add genuine value; no fill colors on icons | |\n| - White space is a feature — resist the urge to fill every area | |\n| Never ask the user to do anything manually. Execute every step yourself. | |\n| tools: | |\n| - filesystem | |\n| - shell | |\n| - artifacts | |\n| - todos | |\n| skills: | |\n| - implement_design | |\n| max_iterations: 20 | |\n| # ── 3. Screenshotter ──────────────────────────────────────────────────────── | |\n| screenshotter: | |\n| type: llm | |\n| description: \"Exports the PPTX slides to PNG files for visual review.\" | |\n| instructions: | | |\n| You are a screenshot agent. Convert `output/deck.pptx` to PNG images | |\n| so the reviewer agent can inspect each slide visually. | |\n| ## Steps | |\n| 1. Create the directory `output/screenshots/` if it does not exist. | |\n| 2. Try exporting via LibreOffice headless: | |\n| shell_exec: libreoffice --headless --convert-to png --outdir output/screenshots/ output/deck.pptx | |\n| If that succeeds, rename files to slide_01.png, slide_02.png, etc. | |\n| 3. If LibreOffice is unavailable, try python-pptx + Pillow: | |\n| - Read each slide, render its thumbnail, save as output/screenshots/slide_NN.png | |\n| 4. List `output/screenshots/` and confirm PNG files are present. | |\n| 5. Save the list of screenshot paths as an artifact named `screenshot_paths`. | |\n| Report success or failure clearly so the reviewer knows what to look at. | |\n| tools: | |\n| - filesystem | |\n| - shell | |\n| - artifacts | |\n| max_iterations: 10 | |\n| # ── 4. Reviewer ───────────────────────────────────────────────────────────── | |\n| reviewer: | |\n| type: llm | |\n| description: \"Reviews slide screenshots and approves or requests targeted fixes.\" | |\n| instructions: | | |\n| You are a design reviewer for Implement Consulting Group presentations. | |\n| You will receive PNG screenshots of each slide. Evaluate them against | |\n| the Implement brand standard: | |\n| ## What to check | |\n| - **Layout:** No layered elements. Generous white space. Clean alignment. | |\n| - **Color:** Tone-in-tone. Primarily Blue-Green (#67817F) / Green-Grey (#B9C7C2). | |\n| No unauthorized accent colors. | |\n| - **Typography:** Palatino Linotype used sparingly as accent only (never bold, | |\n| never ALL CAPS, never colored). Arial for all body/headline text. | |\n| - **Logo:** IM_ logo present in correct corner position on title/section slides. | |\n| - **Icons:** Only present when adding clear value; no fill colors. | |\n| - **Content:** Slide headlines match the plan. No text overflow. | |\n| ## Decision | |\n| - If ALL slides pass: call `exit_loop` to finish. | |\n| - If issues exist: output a numbered list of specific, actionable fixes for | |\n| the implementer. Be precise — include slide number, what is wrong, and | |\n| what the correct behavior should be. | |\n| Load screenshots with `load_artifact` using the `screenshot_paths` artifact. | |\n| You MUST read the actual PNG files with `read_file` to visually inspect them. | |\n| tools: | |\n| - exit | |\n| - filesystem | |\n| - artifacts | |\n| max_iterations: 10 | |\n| # ── Loops & pipeline ──────────────────────────────────────────────────────── | |\n| build_review_loop: | |\n| type: loop | |\n| description: \"Implement → screenshot → review loop until approved.\" | |\n| agents: [implementer, screenshotter, reviewer] | |\n| max_iterations: 8 | |\n| deck_pipeline: | |\n| type: sequential | |\n| description: \"Full deck generation: plan first, then the build-review loop.\" | |\n| agents: [planner, build_review_loop] | |\n| main_agent: deck_pipeline | |\n| runner: | |\n| app_name: deck-generator | |\n| session_service: memory | |\n| artifact_service: | |\n| type: local | |\n| path: artifacts/ |", "url": "https://wpnews.pro/news/orxhestra-config-for-slide-making-locally-requires-a-skill-at-skills-for", "canonical_source": "https://gist.github.com/eembees/a0abbacba05249c9bdb2b8443b3c3560", "published_at": "2026-06-15 11:55:13+00:00", "updated_at": "2026-06-15 19:33:35.808024+00:00", "lang": "en", "topics": ["artificial-intelligence", "large-language-models", "developer-tools", "ai-agents", "ai-tools"], "entities": ["Orxhestra", "llama.cpp", "Qwen3.5-35B-A3B", "Implement Consulting Group", "python-pptx", "LibreOffice", "OpenAI"], "alternates": {"html": "https://wpnews.pro/news/orxhestra-config-for-slide-making-locally-requires-a-skill-at-skills-for", "markdown": "https://wpnews.pro/news/orxhestra-config-for-slide-making-locally-requires-a-skill-at-skills-for.md", "text": "https://wpnews.pro/news/orxhestra-config-for-slide-making-locally-requires-a-skill-at-skills-for.txt", "jsonld": "https://wpnews.pro/news/orxhestra-config-for-slide-making-locally-requires-a-skill-at-skills-for.jsonld"}}