diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 697cce49..66d93b0f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -158,6 +158,14 @@ To use it: - Run the build (`npm run build`) - Install Playwright browsers (so you can run `npm run test:visual`) +## Key Documentation + +Before starting your work, please review these key documents: + +- **[AGENTS.md](./AGENTS.md)**: Architectural guidelines, mission statement, and troubleshooting tips. +- **[Nostr Event Schemas](./docs/nostr-event-schemas.md)**: The source of truth for all Nostr events published by the application. +- **[Playback Fallback](./docs/playback-fallback.md)**: Details on the URL-first playback strategy and WebTorrent fallback mechanism. + ## Security If you find a vulnerability, please email **[security@bitvid.network](mailto:security@bitvid.network)**. We’ll coordinate a responsible disclosure window before public release. diff --git a/README.md b/README.md index fc1d3fcf..1a4bcc53 100644 --- a/README.md +++ b/README.md @@ -174,13 +174,18 @@ To run **bitvid** locally: http://localhost:8000 ``` -### Quickstart Commands +### Developer Quickstart See [`CONTRIBUTING.md`](./CONTRIBUTING.md) for the full developer guide. +**Verify your work:** + - **Run unit tests**: `npm run test:unit` (Required before PRs) - **Format code**: `npm run format` (Required before PRs) -- **Lint code**: `npm run lint` +- **Lint code**: `npm run lint` (Checks for CSS, hex colors, inline styles) + +**Other commands:** + - **Run DM unit tests**: `npm run test:dm:unit` - **Run DM integration tests**: `npm run test:dm:integration` - **Run headless E2E tests**: `npm run test:e2e` @@ -233,11 +238,11 @@ const event = buildVideoPostEvent({ // Provide your hex pubkey (not npub) pubkey: "your_pubkey_hex", created_at: Math.floor(Date.now() / 1000), - dTagValue: "my-first-video", // The stable identifier (d-tag) for this video + dTagValue: "my-first-video", // The stable identifier (d-tag) for this video series content: { version: 3, title: "My First Video", - videoRootId: "my-first-video", // Logical ID, typically matches the d-tag + videoRootId: "my-first-video", // Logical ID, matches the d-tag url: "https://example.com/video.mp4", description: "This is a test video post sent via the SDK." // magnet: "magnet:?xt=urn:btih:..." // Optional fallback (provide the raw magnet string)