## 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> |
||
|---|---|---|
| .. | ||
| public | ||
| src | ||
| package.json | ||
| pnpm-lock.yaml | ||
| postcss.config.mjs | ||
| README.md | ||
| remotion.config.ts | ||
| tsconfig.json | ||
Video Renderer
Remotion-based video renderer for StemeDB marketing and pitch videos.
Compositions
| Composition | Purpose | Aspect Ratio |
|---|---|---|
ExpertConversation |
TikTok/Reels style product discovery videos | 9:16 |
PitchVideo |
Pitch presentations with slide → app demo transitions | 16:9 |
Quick Start
# Install dependencies
pnpm install
# Open Remotion Studio (preview/edit)
pnpm studio
# Render PitchVideo
pnpm render:pitch
Pitch Video Structure
The pitch video is built from "blocks" - each with its own MP3 audio file:
| Block Type | Visual | Example |
|---|---|---|
stat |
Big number with count-up animation | "79% of FDA Warning Letters..." |
slide |
Full-screen headline with optional subheadline | "With AI making more decisions..." |
problem |
Problem statement with icon | "Sources disagree" |
feature |
Feature card with icon and description | "Conflict Visibility" |
app-demo |
Dashboard screenshot with animated callouts | Skeptic Query page |
closing |
CTA with animated button | "Schedule a Demo" |
Assets
Audio Files
Place MP3 voiceover files in public/audio/:
public/audio/
├── 01-hook-stat.mp3
├── 02-hook-reveal.mp3
├── 03-problem-1.mp3
...
├── 30-close.mp3
└── background-music.mp3 (optional)
Screenshots
Place dashboard screenshots in public/screenshots/:
public/screenshots/
├── skeptic-query.png
├── weight-distribution.png
├── audit-trail.png
├── sources-page.png
├── impact-preview.png
├── quarantine-source.png
├── time-travel.png
└── circuit-breaker.png
Capture at 1920x1080 for 16:9 aspect ratio.
Scripts
| Script | Description |
|---|---|
pnpm studio |
Open Remotion Studio for preview |
pnpm render:pitch |
Render full pitch video to out/stemedb-pitch.mp4 |
pnpm render:pitch:preview |
Render lower quality preview (faster) |
pnpm render:pitch:api |
Programmatic render with custom script |
Customizing the Script
Edit src/data/stemedb-pitch.ts to modify:
- Block order and content
- Audio file paths and durations
- Callout positions and timing
- Captions and headlines
Audio Sync
Each block's duration is determined by its audio.durationMs value. Update these values after generating audio:
{
id: 'hook-stat',
type: 'stat',
audio: {
src: 'audio/01-hook-stat.mp3',
durationMs: 5000, // Update to actual audio duration
},
content: { ... }
}
Development
# Type check
npx tsc --noEmit
# Preview specific composition
pnpm studio # Then select composition in UI