{"owner":"lightpanda-io","repo":"browser","hasSkills":true,"totalSkillsCount":1,"totalTokensCount":504,"categories":["root-instruction"],"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md"],"skills":{"AGENTS.md":"# AGENTS.md\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for how to open a pull request (CLA, dev setup, pre-PR checks).\n\n## Build and tests\n\nRun `make download-v8` once first: it fetches the prebuilt V8 archive into `.lp-cache/`, which `build.zig` picks up automatically. Without it every build compiles V8 from source (10+ minutes).\n\nThe C and Rust dependencies are built with `-Doptimize=fast` whatever `-Doptimize` is, so debug and release builds share them. Pass `ZIGFLAGS=-Ddebug_deps` to step into a dependency with a debugger.\n\n```bash\nmake test                                       # Run all tests\nmake test F=\"server\"                            # Filter by substring\nTEST_FILTER=\"WebApi: #selector_all\" make test   # Filter main + subtest (separator: #)\nTEST_VERBOSE=true make test\nTEST_FAIL_FIRST=true make test\nMETRICS=true make test                          # Capture allocation/duration metrics as JSON\nTEST_JOBS=1 make test                           # Run in one process (default: up to 4, or 1 when filtered)\n```\n\nThe custom test runner (`src/test_runner.zig`) detects memory leaks in debug builds. **A test that allocates without freeing fails** — not just lints.\n\nThe suite is split across processes that run at the same time, each claiming the next test not yet taken. So a test can't rely on an earlier one having run, and files it writes go in `std.testing.tmpDir`, never a fixed path. Each process binds its test servers to ephemeral ports; fixtures keep addressing `127.0.0.1:9582` / `localhost:9582` (HTTP) and `:9584` (WebSocket), which libcurl routes to the real ones.\n\n## Formatting\n\n```bash\nzig fmt --check ./*.zig ./**/*.zig    # Exact command CI runs\n```\n\n`zig build` depends on the fmt step, so a local build catches drift too.\n\n## Conventions\n\nMirror the patterns in neighboring files. In particular:\n\n- `@import` alias case follows the imported file's basename (`const Frame = @import(\"Frame.zig\")`, `const ast = @import(\"ast.zig\")`).\n- Prefer struct-init type inference (`.{ ... }`) where the expected type is known from the function signature or variable annotation.\n"},"files":{"AGENTS.md":"# AGENTS.md\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for how to open a pull request (CLA, dev setup, pre-PR checks).\n\n## Build and tests\n\nRun `make download-v8` once first: it fetches the prebuilt V8 archive into `.lp-cache/`, which `build.zig` picks up automatically. Without it every build compiles V8 from source (10+ minutes).\n\nThe C and Rust dependencies are built with `-Doptimize=fast` whatever `-Doptimize` is, so debug and release builds share them. Pass `ZIGFLAGS=-Ddebug_deps` to step into a dependency with a debugger.\n\n```bash\nmake test                                       # Run all tests\nmake test F=\"server\"                            # Filter by substring\nTEST_FILTER=\"WebApi: #selector_all\" make test   # Filter main + subtest (separator: #)\nTEST_VERBOSE=true make test\nTEST_FAIL_FIRST=true make test\nMETRICS=true make test                          # Capture allocation/duration metrics as JSON\nTEST_JOBS=1 make test                           # Run in one process (default: up to 4, or 1 when filtered)\n```\n\nThe custom test runner (`src/test_runner.zig`) detects memory leaks in debug builds. **A test that allocates without freeing fails** — not just lints.\n\nThe suite is split across processes that run at the same time, each claiming the next test not yet taken. So a test can't rely on an earlier one having run, and files it writes go in `std.testing.tmpDir`, never a fixed path. Each process binds its test servers to ephemeral ports; fixtures keep addressing `127.0.0.1:9582` / `localhost:9582` (HTTP) and `:9584` (WebSocket), which libcurl routes to the real ones.\n\n## Formatting\n\n```bash\nzig fmt --check ./*.zig ./**/*.zig    # Exact command CI runs\n```\n\n`zig build` depends on the fmt step, so a local build catches drift too.\n\n## Conventions\n\nMirror the patterns in neighboring files. In particular:\n\n- `@import` alias case follows the imported file's basename (`const Frame = @import(\"Frame.zig\")`, `const ast = @import(\"ast.zig\")`).\n- Prefer struct-init type inference (`.{ ... }`) where the expected type is known from the function signature or variable annotation.\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","rawUrl":"https://raw.githubusercontent.com/lightpanda-io/browser/HEAD/AGENTS.md","title":"AI Agent Protocol & Instructions","category":"root-instruction","format":"markdown","content":"# AGENTS.md\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for how to open a pull request (CLA, dev setup, pre-PR checks).\n\n## Build and tests\n\nRun `make download-v8` once first: it fetches the prebuilt V8 archive into `.lp-cache/`, which `build.zig` picks up automatically. Without it every build compiles V8 from source (10+ minutes).\n\nThe C and Rust dependencies are built with `-Doptimize=fast` whatever `-Doptimize` is, so debug and release builds share them. Pass `ZIGFLAGS=-Ddebug_deps` to step into a dependency with a debugger.\n\n```bash\nmake test                                       # Run all tests\nmake test F=\"server\"                            # Filter by substring\nTEST_FILTER=\"WebApi: #selector_all\" make test   # Filter main + subtest (separator: #)\nTEST_VERBOSE=true make test\nTEST_FAIL_FIRST=true make test\nMETRICS=true make test                          # Capture allocation/duration metrics as JSON\nTEST_JOBS=1 make test                           # Run in one process (default: up to 4, or 1 when filtered)\n```\n\nThe custom test runner (`src/test_runner.zig`) detects memory leaks in debug builds. **A test that allocates without freeing fails** — not just lints.\n\nThe suite is split across processes that run at the same time, each claiming the next test not yet taken. So a test can't rely on an earlier one having run, and files it writes go in `std.testing.tmpDir`, never a fixed path. Each process binds its test servers to ephemeral ports; fixtures keep addressing `127.0.0.1:9582` / `localhost:9582` (HTTP) and `:9584` (WebSocket), which libcurl routes to the real ones.\n\n## Formatting\n\n```bash\nzig fmt --check ./*.zig ./**/*.zig    # Exact command CI runs\n```\n\n`zig build` depends on the fmt step, so a local build catches drift too.\n\n## Conventions\n\nMirror the patterns in neighboring files. In particular:\n\n- `@import` alias case follows the imported file's basename (`const Frame = @import(\"Frame.zig\")`, `const ast = @import(\"ast.zig\")`).\n- Prefer struct-init type inference (`.{ ... }`) where the expected type is known from the function signature or variable annotation.\n","isInternal":false,"tokens":504,"sizeBytes":2100}],"systemPromptSnippet":"<yakaai_skills repo=\"lightpanda-io/browser\">\n<!-- File: AGENTS.md (Tokens: ~504 | Category: root-instruction) -->\n# AGENTS.md\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for how to open a pull request (CLA, dev setup, pre-PR checks).\n\n## Build and tests\n\nRun `make download-v8` once first: it fetches the prebuilt V8 archive into `.lp-cache/`, which `build.zig` picks up automatically. Without it every build compiles V8 from source (10+ minutes).\n\nThe C and Rust dependencies are built with `-Doptimize=fast` whatever `-Doptimize` is, so debug and release builds share them. Pass `ZIGFLAGS=-Ddebug_deps` to step into a dependency with a debugger.\n\n```bash\nmake test                                       # Run all tests\nmake test F=\"server\"                            # Filter by substring\nTEST_FILTER=\"WebApi: #selector_all\" make test   # Filter main + subtest (separator: #)\nTEST_VERBOSE=true make test\nTEST_FAIL_FIRST=true make test\nMETRICS=true make test                          # Capture allocation/duration metrics as JSON\nTEST_JOBS=1 make test                           # Run in one process (default: up to 4, or 1 when filtered)\n```\n\nThe custom test runner (`src/test_runner.zig`) detects memory leaks in debug builds. **A test that allocates without freeing fails** — not just lints.\n\nThe suite is split across processes that run at the same time, each claiming the next test not yet taken. So a test can't rely on an earlier one having run, and files it writes go in `std.testing.tmpDir`, never a fixed path. Each process binds its test servers to ephemeral ports; fixtures keep addressing `127.0.0.1:9582` / `localhost:9582` (HTTP) and `:9584` (WebSocket), which libcurl routes to the real ones.\n\n## Formatting\n\n```bash\nzig fmt --check ./*.zig ./**/*.zig    # Exact command CI runs\n```\n\n`zig build` depends on the fmt step, so a local build catches drift too.\n\n## Conventions\n\nMirror the patterns in neighboring files. In particular:\n\n- `@import` alias case follows the imported file's basename (`const Frame = @import(\"Frame.zig\")`, `const ast = @import(\"ast.zig\")`).\n- Prefer struct-init type inference (`.{ ... }`) where the expected type is known from the function signature or variable annotation.\n</yakaai_skills>"}