stemedb/applications/pitch/screenshots/README.md
jordan 157dbbb9eb feat: Complete Aphoria Phase 8-9 + UAT suite (90/90 tests passing)
## Phase 8: Enterprise Extractor Improvements 
- 14 security extractors (TLS, JWT, SQL injection, XSS, etc.)
- 10 framework-specific extractors (Spring, Django, Rails, etc.)
- Config file security detection (YAML, TOML)

## Phase 9: Autonomous Extractor Generation 
- Shadow mode executor with TP/FP tracking
- Graduation pipeline with confidence thresholds
- Auto-rollback on regression detection
- Cross-project pattern syncing

## UAT Suite Complete (14 scripts, 90 tests)
- test-core-detection.sh (6 tests)
- test-declarative-extractors.sh (5 tests)
- test-domain-frameworks.sh (5 tests)
- test-domain-unreal.sh (3 tests)
- test-llm-extraction.sh (6 tests)
- test-eval-harness.sh (5 tests)
- test-cross-language.sh (3 tests)
- test-precommit-performance.sh (4 tests)
- test-output-formats.sh (8 tests)
- test-drift-detection.sh (6 tests)
- test-exit-codes.sh (12 tests)
+ 3 more scripts

## Other Changes
- Updated roadmap to mark Phase 8-9 complete
- Added .gitignore entries for build artifacts
- Updated pre-commit: 800 line limit, exclude tests/data/cmd

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 22:50:55 -07:00

95 lines
1.7 KiB
Markdown

# Screenshot Capture
Playwright-based screenshot capture for pitch videos and demos.
## Setup
```bash
cd applications/pitch
pnpm install
npx playwright install chromium
```
## Usage
1. Create a config file (e.g., `my-screenshots.json`):
```json
{
"baseUrl": "http://localhost:18188",
"outputDir": "screenshots/demo",
"screenshots": [
{ "url": "/skeptic", "name": "skeptic-query.png" },
{ "url": "/skeptic", "name": "skeptic-results.png", "waitFor": ".results" },
{ "url": "/sources", "name": "sources.png", "delay": 500 }
]
}
```
2. Run:
```bash
pnpm capture my-screenshots.json
```
3. Screenshots saved to `screenshots/demo/`
## Config Options
| Field | Required | Description |
|-------|----------|-------------|
| `baseUrl` | No | Base URL (default: `http://localhost:18188`) |
| `outputDir` | No | Output directory (default: `screenshots`) |
| `screenshots` | Yes | Array of screenshots to capture |
### Screenshot Fields
| Field | Required | Description |
|-------|----------|-------------|
| `url` | Yes | Page URL (relative to baseUrl or absolute) |
| `name` | Yes | Output filename (e.g., `demo.png`) |
| `waitFor` | No | CSS selector to wait for before capturing |
| `delay` | No | Milliseconds to wait after page load |
## Examples
### Basic capture
```json
{
"screenshots": [
{ "url": "/dashboard", "name": "dashboard.png" }
]
}
```
### Wait for element
```json
{
"screenshots": [
{ "url": "/results", "name": "results.png", "waitFor": ".data-loaded" }
]
}
```
### Wait for animation
```json
{
"screenshots": [
{ "url": "/chart", "name": "chart.png", "delay": 1000 }
]
}
```
### Full URLs
```json
{
"screenshots": [
{ "url": "https://example.com/page", "name": "external.png" }
]
}
```