{"id":51041879,"url":"https://github.com/voidful/slider","last_synced_at":"2026-06-22T11:02:08.919Z","repository":{"id":357105130,"uuid":"1212136452","full_name":"voidful/Slider","owner":"voidful","description":null,"archived":false,"fork":false,"pushed_at":"2026-05-11T09:55:34.000Z","size":312,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-11T11:37:22.599Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/voidful.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-16T05:09:43.000Z","updated_at":"2026-05-11T09:55:39.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/voidful/Slider","commit_stats":null,"previous_names":["voidful/slider"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/voidful/Slider","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voidful%2FSlider","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voidful%2FSlider/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voidful%2FSlider/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voidful%2FSlider/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/voidful","download_url":"https://codeload.github.com/voidful/Slider/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voidful%2FSlider/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34645688,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-22T02:00:06.391Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-22T11:02:07.982Z","updated_at":"2026-06-22T11:02:08.912Z","avatar_url":"https://github.com/voidful.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Slider\n\nEvidence-first research slide generation for conference talks.\n\nSlider turns an arXiv paper, PDF, title, DOI, or extracted text into a browser-native presentation that is faithful to the paper, visually restrained, and ready to audit before delivery.\n\n![Slider React starter preview](assets/readme/slider-react-preview.jpg)\n\n## Why Slider\n\nMost paper-to-slide workflows produce generic summaries. Slider is built around a stricter product promise: the deck should explain the paper through evidence, not decoration.\n\n- **Evidence-first planning:** extracts claims, methods, results, limitations, figures, and tables before composing slides.\n- **Mandatory visual inclusion:** key paper figures and tables are treated as main-deck content, not optional garnish.\n- **Paper-type policy:** architecture, optimization, benchmark, theory, and qualitative papers get different deck policies.\n- **Research-grade design:** projector-safe typography, density budgets, anti-AI-slop rules, and stable fullscreen rendering.\n- **Self-contained output:** the default artifact is one HTML file that opens directly in a browser.\n- **Audit-backed delivery:** static, design, evidence, and browser overflow checks are part of the workflow.\n\n## What You Get\n\nSlider can generate or scaffold:\n\n| Output | Use case |\n|:---|:---|\n| Built HTML deck | Default deliverable. Single self-contained presentation file. |\n| React single-file component | Quick integration into an existing React workflow. |\n| React project starter | Multi-file Vite project with presenter controls and a fixed 1200x675 stage. |\n| Platform configs | Instructions for Gemini, ChatGPT, Claude, Claude Code, and OpenAI agents. |\n\n## Example Product Surface\n\nThe bundled React project starter includes a fixed-stage deck shell, keyboard navigation, progress, overview, speaker notes, fullscreen controls, a linked presenter window, blackout controls, and product-quality CSS without relying on implicit global styling.\n\n```bash\ncd assets/react-project-starter\nnpm install\nnpm run dev\n```\n\nThen open the local Vite URL and use:\n\n- `Left` / `Right` or `Space` for slide navigation.\n- `O` for overview.\n- `N` for speaker notes.\n- `C` for review comments.\n- `V` for paper visual asset manager.\n- `D` for deck design lock.\n- `F` for fullscreen.\n- `P` for presenter window.\n- `L` for laser pointer.\n- `B` / `W` for black or white screen.\n- Swipe or wheel for slide navigation.\n- `?` for keyboard help.\n\n## Pipeline\n\nSlider follows a deterministic, evidence-backed flow:\n\n1. Ingest paper text or PDF.\n2. Extract title, authors, claims, method, experiments, limitations, figures, and tables.\n3. Classify paper type.\n4. Score and select visual candidates.\n5. Export or bind paper visuals.\n6. Compile deck design from policy.\n7. Generate slide data with density budgets and evidence bindings.\n8. Render HTML, React, or a React project.\n9. Run verification before delivery.\n\n## Quick Start\n\nRun the core health check:\n\n```bash\npython3 scripts/check_skill_health.py\n```\n\nRender a deck from prepared slide data:\n\n```bash\npython3 scripts/render_slideshow_artifact.py \\\n  --slide-data slide-plan.json \\\n  --mode html \\\n  --output deck.html\n```\n\nRender a React project:\n\n```bash\npython3 scripts/render_slideshow_artifact.py \\\n  --slide-data slide-plan.json \\\n  --deck-design deck_design.json \\\n  --mode react-project \\\n  --output deck-project\n```\n\nInside a rendered React project:\n\n```bash\nnpm run export:static\nnpm run export:pdf\n```\n\nReview visual binding coverage:\n\n```bash\npython3 scripts/visual_asset_report.py \\\n  --slide-data bound-slide-plan.json \\\n  --visuals scored-visuals.json \\\n  --exports export-manifest.json\n```\n\nValidate platform exports:\n\n```bash\npython3 scripts/export_platform_configs.py --platform all --validate\n```\n\n## Verification\n\nUse the checks that match the artifact you are shipping:\n\n```bash\npython3 scripts/check_skill_health.py\npython3 scripts/audit_design_comfort.py deck.html\npython3 scripts/audit_research_slides.py --slide-data slide-plan.json --paper-type architecture-heavy\npython3 scripts/browser_slide_audit.py deck.html\n```\n\nThe browser audit checks windowed and simulated-fullscreen rendering, fixed-stage overflow, and broken image state.\n\n## Repository Layout\n\n```text\nSKILL.md                         Core agent workflow and product contract\nassets/design/DESIGN.md          Design control plane\nassets/html-slideshow-starter/   Canonical self-contained HTML deck template\nassets/react-slideshow-starter/  Single-file React starter\nassets/react-project-starter/    Vite React project starter\nassets/readme/                   README screenshots and media\nreferences/                      Policy, design, rendering, and verification docs\nscripts/                         Pipeline, rendering, and audit scripts\nagents/                          Platform-specific agent configs\n```\n\n## Key Scripts\n\n| Script | Purpose |\n|:---|:---|\n| `extract_paper_evidence.py` | Extract an evidence bundle from paper text or PDF. |\n| `find_visual_evidence.py` | Locate figure and table candidates. |\n| `score_visual_candidates.py` | Rank visual candidates for main deck or appendix use. |\n| `generate_slide_data.py` | Create structured slide data. |\n| `export_pdf_visuals.py` | Crop visual assets from PDFs. |\n| `bind_visual_assets.py` | Attach exported visuals to slides. |\n| `visual_asset_report.py` | Report visual binding coverage, missing required figures, and export/candidate counts. |\n| `compile_deck_design.py` | Compile deck-level design policy. |\n| `render_slideshow_artifact.py` | Render HTML, React, or React project output. |\n| `audit_research_slides.py` | Check evidence fidelity and visual policy. |\n| `audit_design_comfort.py` | Check design comfort and readability. |\n| `browser_slide_audit.py` | Check browser rendering and overflow. |\n| `check_skill_health.py` | Run repository health checks. |\n\n## Platform Support\n\n| Platform | Instructions | Setup |\n|:---|:---|:---|\n| Gemini CLI | `SKILL.md` | Place in `.gemini/skills/` |\n| ChatGPT Custom GPT | `agents/chatgpt/system_prompt.md` | Paste instructions and upload knowledge files |\n| Claude Projects | `agents/claude/CLAUDE.md` | Set as project instructions |\n| Claude Code | `agents/claude/CLAUDE.md` | Copy to project root |\n| OpenAI agents | `agents/openai/config.yaml` | Use as agent configuration input |\n\n## Project Status\n\nSlider is an active research-tooling project. The current focus is making every generated deck traceable, visually stable, and realistic to present without manual rescue work.\n\nSee [TEST_MATRIX.md](TEST_MATRIX.md), [ARCHITECTURE.md](ARCHITECTURE.md), and [CHANGELOG.md](CHANGELOG.md) for implementation details and release notes.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoidful%2Fslider","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvoidful%2Fslider","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoidful%2Fslider/lists"}