paperhawk / docs /slides /README.md
Nándorfi Vince
Initial paperhawk push to HF Space (LFS for binaries)
7ff7119
# PaperHawk — Slide Deck
The 10-slide deck for the AMD Developer Hackathon × lablab.ai submission.
- **Source**: `slides.html` (single self-contained HTML, ~1100 lines, no JS, no external assets except the repo's `paperhawk.jpeg`)
- **Format**: 16:9 landscape (1280 × 720 px per slide)
- **Palette**: AMD red `#ED1C24` + AMD orange `#FB6624` + PaperHawk black `#1A1A1A` + Qwen purple `#7C3AED` accent
- **Typography**: Inter (Google Fonts), JetBrains Mono for code/labels
- **License**: MIT (same as the repo)
## Render to PDF (Playwright)
```bash
# One-time setup
pip install playwright
playwright install chromium
# Render slides.html → PaperHawk_Slides.pdf
python - <<'PY'
import asyncio
from pathlib import Path
from playwright.async_api import async_playwright
async def main():
src = Path("docs/slides/slides.html").resolve().as_uri()
out = Path("docs/slides/PaperHawk_Slides.pdf")
async with async_playwright() as p:
browser = await p.chromium.launch()
page = await browser.new_page(viewport={"width": 1280, "height": 720})
await page.goto(src, wait_until="networkidle")
await page.pdf(
path=str(out),
width="1280px",
height="720px",
print_background=True,
margin={"top": "0", "right": "0", "bottom": "0", "left": "0"},
)
await browser.close()
asyncio.run(main())
print("Wrote", "docs/slides/PaperHawk_Slides.pdf")
PY
```
## Render the cover slide as PNG (HF Space hero)
```bash
python - <<'PY'
import asyncio
from pathlib import Path
from playwright.async_api import async_playwright
async def main():
src = Path("docs/slides/slides.html").resolve().as_uri()
out = Path("docs/slides/01_cover.png")
async with async_playwright() as p:
browser = await p.chromium.launch()
page = await browser.new_page(viewport={"width": 1280, "height": 720})
await page.goto(src, wait_until="networkidle")
# Screenshot the first .slide element only.
cover = page.locator(".slide").first
await cover.screenshot(path=str(out), omit_background=False)
await browser.close()
asyncio.run(main())
print("Wrote", "docs/slides/01_cover.png")
PY
```
## Preview locally
```bash
# Open in your browser (renders identical to the PDF):
xdg-open docs/slides/slides.html
```
## Iteration workflow
1. Edit `slides.html` (CSS at the top, slides as `<section class="slide">` blocks)
2. Reload the browser tab to preview
3. When happy, re-run the Playwright PDF script
4. Commit both `slides.html` and the generated PDF
## Slide map
| # | Title | Visual |
|---|---|---|
| 1 | Cover | `paperhawk.jpeg` hero + team + tagline |
| 2 | The Problem | RAG-vs-audit split contrast |
| 3 | What We Built | 5 big-number stat cards |
| 4 | The Pipeline | 5-step ribbon (red→orange gradient) |
| 5 | The 14 Domain Checks | 3-tier table (audit / compliance / standards) |
| 6 | Anti-Halluc + DD | 5+1 layer stack | DD supervisor pattern |
| 7 | The Stack | Vertical stack-row layout (AMD + Qwen highlighted) |
| 8 | Demo Packages | 3 demo cards + timing banner |
| 9 | Built for Builders | 3 builders cards + repo/HF/MIT meta |
| 10 | Team + Closing | 3 team cards + closing tagline |
## Notes
- All copy is English, builder-energy tone, no PwC/Hungarian narrative residue
- The `paperhawk.jpeg` reference is `../../paperhawk.jpeg` (relative to `docs/slides/`)
- The gradient strip on every slide top is `linear-gradient(90deg, AMD-red → AMD-orange → Qwen-purple)` — a visual signature
- "Team CsimpiCsirkek" appears in the cover meta + final footer; "Built to ship" closing tagline carries the winner-team subtext without being on-the-nose