File size: 3,719 Bytes
7ff7119 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | # 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
|