[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7BTM1DXPSHMA09RMR4TP7NR":3,"skill-same:01M7BTM1DXPSHMA09RMR4TP7NR":47},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":27,"repositoryHtmlUrl":28,"repositoryHomepageUrl":29,"ownerHtmlUrl":30,"ownerBlogUrl":6,"ownerDescription":31,"updatedAt":32,"install":33,"resources":46},"01M7BTM1DXPSHMA09RMR4TP7NR","gpui-test",null,"Use when writing, debugging, or reproducing GPUI tests in Zed, including gpui::test arguments, TestAppContext parameters, scheduler seeds, ITERATIONS\u002FSEED reproduction, parking failures, and pending task traces.","YYC-Cube\u002FYYC3-Knowledge-Base","YYC-Cube","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F235006543?v=4","01M79J2PH4SWD2X0825X6PN748","yyc3","01M79J2PHVK3F6ZBYT8K2SCZCW",1,"MIT","https:\u002F\u002Fgithub.com\u002FYYC-Cube\u002FYYC3-Knowledge-Base\u002Fblob\u002Fmain\u002FYYC3-IDE-编辑器内核\u002FYYC3-IDE-编辑器内核-zed\u002F.agents\u002Fskills\u002Fgpui-test\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: gpui-test\ndescription: >-\n  Use when writing, debugging, or reproducing GPUI tests in Zed, including\n  gpui::test arguments, TestAppContext parameters, scheduler seeds,\n  ITERATIONS\u002FSEED reproduction, parking failures, and pending task traces.\n---\n\n# GPUI Test Debugging\n\nUse this skill when the user asks about `#[gpui::test]`, GPUI test seeds or iterations, deterministic scheduler failures, parking\u002Fpending task failures, or how to reproduce a flaky GPUI test.\n\n## What `#[gpui::test]` does\n\n`#[gpui::test]` expands to a normal Rust `#[test]`, so it runs under standard Rust test runners such as `cargo test` and `cargo nextest`.\n\nIt wraps the body in GPUI's deterministic test dispatcher\u002Fscheduler and can run the same test multiple times with different seeds. The seed controls scheduler task interleavings and any `StdRng` argument injected into the test.\n\nThe macro supports both synchronous and asynchronous tests.\n\n### Supported function arguments\n\nThe macro recognizes arguments by type name:\n\n| Test kind | Supported arguments |\n| --- | --- |\n| Sync and async | `&TestAppContext`, `&mut TestAppContext`, `StdRng` |\n| Async only | `BackgroundExecutor` |\n| Sync only | `&App`, `&mut App` |\n\n`StdRng` is seeded from the current GPUI test seed, and `BackgroundExecutor` is backed by the same deterministic test dispatcher.\n\n### Attribute arguments\n\nUse these forms on `#[gpui::test(arguments)]`:\n\n- No arguments: runs once with seed `0`, unless `SEED` is set.\n- `seed = N`: adds a single explicit seed.\n- `seeds(...)`: adds multiple explicit seeds.\n- `iterations = N`: runs sequential seeds starting at `0` by default.\n- `retries = N`: retries a failing run up to `N` times before surfacing the failure.\n- `on_failure = \"path::to::function\"`: calls the function after final failure, before resuming the panic.\n- `iterations` can be combined with explicit `seed` \u002F `seeds`; explicit seeds are appended to the `0..iterations` range.\n- If the `SEED` environment variable is set, it takes precedence over explicit seeds.\n- With `SEED=N` and `ITERATIONS=M` or `iterations = M`, the harness runs seeds `N..N+M`.\n\n## Environment variables\n\n### GPUI test macro \u002F scheduler execution\n\n- `SEED=\u003Cu64>` — chooses the scheduler seed. Use this to reproduce a failure printed as `failing seed: N`. It also seeds injected `StdRng` arguments. For `#[gpui::property_test]`, it controls the scheduler seed and GPUI applies it to the proptest config for deterministic case generation.\n- `ITERATIONS=\u003Cusize>` — overrides the `iterations = ...` value at runtime. Use to sweep many seeds without editing the test.\n- `PENDING_TRACES=1` or `PENDING_TRACES=true` — captures and prints pending task traces when the test scheduler panics with `Parking forbidden`. Use this when `run_until_parked()` or teardown reports pending work.\n- `GPUI_RUN_UNTIL_PARKED_LOG=1` — logs when `allow_parking()` is enabled. Use to find tests that explicitly permit parking\u002Fpending work.\n- `DEBUG_SCHEDULER=1` — prints scheduler clock\u002Ftimer debugging from `scheduler::TestScheduler`.\n\n### Lower-level scheduler tests\n\n- `SCHEDULER_NONINTERACTIVE=1` — suppresses interactive seed progress output in `scheduler::TestScheduler::many`. This does not affect the `#[gpui::test]` harness path.\n\n### General Rust test debugging vars often useful with GPUI tests\n\n- `RUST_BACKTRACE=1` or `RUST_BACKTRACE=full` — show panic backtraces.\n- `RUST_LOG=\u003Cfilter>` — enable logs when the test initializes logging.\n- `ZED_HEADLESS=1` — forces GPUI platform guessing toward headless mode; useful for tests that otherwise interact with platform\u002Fwindow setup.\n\nPrefer env vars over editing the test when narrowing a reproduction.\n\n## Reproducing a specific GPUI test\n\n1. Identify the crate\u002Fpackage and test name.\n\n2. Run the narrowest test filter first, skip to 3. if a failing seed is known.\n\n   ```sh\n   cargo -q test -p \u003Ccrate-name> \u003Ctest_name> -- --nocapture\n   ```\n\n3. If the failure mentions a seed, rerun exactly that seed.\n\n   ```sh\n   SEED=\u003Cseed> cargo -q test -p \u003Ccrate-name> \u003Ctest_name> -- --nocapture\n   ```\n\n4. If the failure is flaky and no seed is known, sweep seeds.\n\n   ```sh\n   ITERATIONS=100 cargo -q test -p \u003Ccrate-name> \u003Ctest_name> -- --nocapture\n   ```\n\n   When the harness prints `failing seed: \u003Cseed>`, switch to `SEED=\u003Cseed>` for all future debugging.\n\n5. If the failure is `Parking forbidden`, rerun with pending traces.\n\n   ```sh\n   PENDING_TRACES=1 cargo -q test -p \u003Ccrate-name> \u003Ctest_name> -- --nocapture\n   ```\n\n   If a failing seed was printed or is already known, include it too:\n\n   ```sh\n   SEED=\u003Cseed> PENDING_TRACES=1 cargo -q test -p \u003Ccrate-name> \u003Ctest_name> -- --nocapture\n   ```\n\n   Inspect the pending traces for a task that was spawned but not awaited, detached, completed, or intentionally allowed to park.\n\n6. If timing or timer advancement is involved, prefer GPUI scheduler timers in tests:\n\n   ```rust\n   cx.background_executor().timer(duration).await;\n   ```\n\n   Avoid `smol::Timer::after(...)` in GPUI tests that rely on `run_until_parked()`, because GPUI's scheduler may not track it.\n\n7. Minimize the reproduction.\n   - Keep the failing `SEED` fixed.\n   - Reduce `ITERATIONS` to `1` or remove it once a seed is known.\n   - Remove unrelated setup only after confirming the same seed still fails.\n   - Preserve scheduler-sensitive awaits\u002Fyields; removing them can mask the bug.\n   - If randomness is test-controlled via `StdRng`, log or assert the generated scenario after fixing the scheduler seed.\n\n8. Validate the fix.\n   - Run the fixed seed.\n   - Run a modest seed sweep, e.g. `ITERATIONS=20`, if the failure was scheduler-sensitive.\n   - Run the relevant crate's test filter or broader suite if the touched code has shared behavior.\n\n## Common diagnosis patterns\n\n### Seed-dependent assertion failure\n\nLikely caused by a scheduler interleaving or by `StdRng`-driven test data. Fix `SEED`, reproduce, and inspect which task or generated scenario differs.\n\n### `Parking forbidden`\n\nUsually means a foreground\u002Fbackground task is still pending when the scheduler expected the test to make progress or finish. Look for:\n\n- A task that should be awaited but was dropped.\n- A task that should be detached with error logging.\n- A timer or receiver that is waiting forever.\n- A missing `cx.run_until_parked()` after triggering async work in a test.\n- A missing `cx.advance_clock(...)` to wait for debounced work in a test.\n- Use of non-GPUI timers or executors that the test scheduler cannot drive.\n\nRerun with `PENDING_TRACES=1` before changing code.\n\n### Non-determinism \u002F wrong thread\n\nThe scheduler can report activity from an unexpected thread. Look for work escaping GPUI's foreground\u002Fbackground executors, direct thread spawns, or external async runtimes not controlled by the test dispatcher.\n\n### Tests pass alone but fail in sweeps\n\nUse the failing seed from sweep output. Avoid assuming test order unless the runner is explicitly serial. Check globals, leaked entities\u002Ftasks, and state not reset by test initialization.\n\n## Writing GPUI tests\n\n- Prefer `#[gpui::test]` for tests that need `TestAppContext`, deterministic executors, fake time, or scheduler interleaving coverage.\n- Add `iterations = N` when the test is intentionally checking interleavings.\n- Use `StdRng` as a test argument when randomized test data should follow the same seed as the scheduler.\n- Use `cx.background_executor().timer(duration).await` for delays\u002Ftimeouts in GPUI tests.\n- Do not add or increase `retries` while fixing a test unless the user explicitly asks or the test already documents why probabilistic tolerance is intentional. Retries can mask the failure instead of fixing it.\n","# GPUI Test Debugging\n\nUse this skill when the user asks about `#[gpui::test]`, GPUI test seeds or iterations, deterministic scheduler failures, parking\u002Fpending task failures, or how to reproduce a flaky GPUI test.\n\n## What `#[gpui::test]` does\n\n`#[gpui::test]` expands to a normal Rust `#[test]`, so it runs under standard Rust test runners such as `cargo test` and `cargo nextest`.\n\nIt wraps the body in GPUI's deterministic test dispatcher\u002Fscheduler and can run the same test multiple times with different seeds. The seed controls scheduler task interleavings and any `StdRng` argument injected into the test.\n\nThe macro supports both synchronous and asynchronous tests.\n\n### Supported function arguments\n\nThe macro recognizes arguments by type name:\n\n| Test kind | Supported arguments |\n| --- | --- |\n| Sync and async | `&TestAppContext`, `&mut TestAppContext`, `StdRng` |\n| Async only | `BackgroundExecutor` |\n| Sync only | `&App`, `&mut App` |\n\n`StdRng` is seeded from the current GPUI test seed, and `BackgroundExecutor` is backed by the same deterministic test dispatcher.\n\n### Attribute arguments\n\nUse these forms on `#[gpui::test(arguments)]`:\n\n- No arguments: runs once with seed `0`, unless `SEED` is set.\n- `seed = N`: adds a single explicit seed.\n- `seeds(...)`: adds multiple explicit seeds.\n- `iterations = N`: runs sequential seeds starting at `0` by default.\n- `retries = N`: retries a failing run up to `N` times before surfacing the failure.\n- `on_failure = \"path::to::function\"`: calls the function after final failure, before resuming the panic.\n- `iterations` can be combined with explicit `seed` \u002F `seeds`; explicit seeds are appended to the `0..iterations` range.\n- If the `SEED` environment variable is set, it takes precedence over explicit seeds.\n- With `SEED=N` and `ITERATIONS=M` or `iterations = M`, the harness runs seeds `N..N+M`.\n\n## Environment variables\n\n### GPUI test macro \u002F scheduler execution\n\n- `SEED=\u003Cu64>` — chooses the scheduler seed. Use this to reproduce a failure printed as `failing seed: N`. It also seeds injected `StdRng` arguments. For `#[gpui::property_test]`, it controls the scheduler seed and GPUI applies it to the proptest config for deterministic case generation.\n- `ITERATIONS=\u003Cusize>` — overrides the `iterations = ...` value at runtime. Use to sweep many seeds without editing the test.\n- `PENDING_TRACES=1` or `PENDING_TRACES=true` — captures and prints pending task traces when the test scheduler panics with `Parking forbidden`. Use this when `run_until_parked()` or teardown reports pending work.\n- `GPUI_RUN_UNTIL_PARKED_LOG=1` — logs when `allow_parking()` is enabled. Use to find tests that explicitly permit parking\u002Fpending work.\n- `DEBUG_SCHEDULER=1` — prints scheduler clock\u002Ftimer debugging from `scheduler::TestScheduler`.\n\n### Lower-level scheduler tests\n\n- `SCHEDULER_NONINTERACTIVE=1` — suppresses interactive seed progress output in `scheduler::TestScheduler::many`. This does not affect the `#[gpui::test]` harness path.\n\n### General Rust test debugging vars often useful with GPUI tests\n\n- `RUST_BACKTRACE=1` or `RUST_BACKTRACE=full` — show panic backtraces.\n- `RUST_LOG=\u003Cfilter>` — enable logs when the test initializes logging.\n- `ZED_HEADLESS=1` — forces GPUI platform guessing toward headless mode; useful for tests that otherwise interact with platform\u002Fwindow setup.\n\nPrefer env vars over editing the test when narrowing a reproduction.\n\n## Reproducing a specific GPUI test\n\n1. Identify the crate\u002Fpackage and test name.\n\n2. Run the narrowest test filter first, skip to 3. if a failing seed is known.\n\n   ```sh\n   cargo -q test -p \u003Ccrate-name> \u003Ctest_name> -- --nocapture\n   ```\n\n3. If the failure mentions a seed, rerun exactly that seed.\n\n   ```sh\n   SEED=\u003Cseed> cargo -q test -p \u003Ccrate-name> \u003Ctest_name> -- --nocapture\n   ```\n\n4. If the failure is flaky and no seed is known, sweep seeds.\n\n   ```sh\n   ITERATIONS=100 cargo -q test -p \u003Ccrate-name> \u003Ctest_name> -- --nocapture\n   ```\n\n   When the harness prints `failing seed: \u003Cseed>`, switch to `SEED=\u003Cseed>` for all future debugging.\n\n5. If the failure is `Parking forbidden`, rerun with pending traces.\n\n   ```sh\n   PENDING_TRACES=1 cargo -q test -p \u003Ccrate-name> \u003Ctest_name> -- --nocapture\n   ```\n\n   If a failing seed was printed or is already known, include it too:\n\n   ```sh\n   SEED=\u003Cseed> PENDING_TRACES=1 cargo -q test -p \u003Ccrate-name> \u003Ctest_name> -- --nocapture\n   ```\n\n   Inspect the pending traces for a task that was spawned but not awaited, detached, completed, or intentionally allowed to park.\n\n6. If timing or timer advancement is involved, prefer GPUI scheduler timers in tests:\n\n   ```rust\n   cx.background_executor().timer(duration).await;\n   ```\n\n   Avoid `smol::Timer::after(...)` in GPUI tests that rely on `run_until_parked()`, because GPUI's scheduler may not track it.\n\n7. Minimize the reproduction.\n   - Keep the failing `SEED` fixed.\n   - Reduce `ITERATIONS` to `1` or remove it once a seed is known.\n   - Remove unrelated setup only after confirming the same seed still fails.\n   - Preserve scheduler-sensitive awaits\u002Fyields; removing them can mask the bug.\n   - If randomness is test-controlled via `StdRng`, log or assert the generated scenario after fixing the scheduler seed.\n\n8. Validate the fix.\n   - Run the fixed seed.\n   - Run a modest seed sweep, e.g. `ITERATIONS=20`, if the failure was scheduler-sensitive.\n   - Run the relevant crate's test filter or broader suite if the touched code has shared behavior.\n\n## Common diagnosis patterns\n\n### Seed-dependent assertion failure\n\nLikely caused by a scheduler interleaving or by `StdRng`-driven test data. Fix `SEED`, reproduce, and inspect which task or generated scenario differs.\n\n### `Parking forbidden`\n\nUsually means a foreground\u002Fbackground task is still pending when the scheduler expected the test to make progress or finish. Look for:\n\n- A task that should be awaited but was dropped.\n- A task that should be detached with error logging.\n- A timer or receiver that is waiting forever.\n- A missing `cx.run_until_parked()` after triggering async work in a test.\n- A missing `cx.advance_clock(...)` to wait for debounced work in a test.\n- Use of non-GPUI timers or executors that the test scheduler cannot drive.\n\nRerun with `PENDING_TRACES=1` before changing code.\n\n### Non-determinism \u002F wrong thread\n\nThe scheduler can report activity from an unexpected thread. Look for work escaping GPUI's foreground\u002Fbackground executors, direct thread spawns, or external async runtimes not controlled by the test dispatcher.\n\n### Tests pass alone but fail in sweeps\n\nUse the failing seed from sweep output. Avoid assuming test order unless the runner is explicitly serial. Check globals, leaked entities\u002Ftasks, and state not reset by test initialization.\n\n## Writing GPUI tests\n\n- Prefer `#[gpui::test]` for tests that need `TestAppContext`, deterministic executors, fake time, or scheduler interleaving coverage.\n- Add `iterations = N` when the test is intentionally checking interleavings.\n- Use `StdRng` as a test argument when randomized test data should follow the same seed as the scheduler.\n- Use `cx.background_executor().timer(duration).await` for delays\u002Ftimeouts in GPUI tests.\n- Do not add or increase `retries` while fixing a test unless the user explicitly asks or the test already documents why probabilistic tolerance is intentional. Retries can mask the failure instead of fixing it.\n",{"name":5,"description":7},"main","87afe6ce96220accf50a345dea46784c8c9f210e","YYC3-IDE-编辑器内核\u002FYYC3-IDE-编辑器内核-zed\u002F.agents\u002Fskills\u002Fgpui-test",0,"https:\u002F\u002Fgithub.com\u002FYYC-Cube\u002FYYC3-Knowledge-Base","https:\u002F\u002Fkb.yyc3.top\u002F","https:\u002F\u002Fgithub.com\u002FYYC-Cube","万象归元于云枢 | 深栈智启新纪元","2026-11-10 10:37:32",{"source":8,"skillName":5,"commands":34,"prompt":44,"zipAvailable":45},[35,38,41],{"tool":36,"command":37},"npx","npx skills add YYC-Cube\u002FYYC3-Knowledge-Base --skill gpui-test",{"tool":39,"command":40},"bunx","bunx skills add YYC-Cube\u002FYYC3-Knowledge-Base --skill gpui-test",{"tool":42,"command":43},"pnpm","pnpm dlx skills add YYC-Cube\u002FYYC3-Knowledge-Base --skill gpui-test","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FYYC-Cube\u002FYYC3-Knowledge-Base\u002Fblob\u002Fmain\u002FYYC3-IDE-编辑器内核\u002FYYC3-IDE-编辑器内核-zed\u002F.agents\u002Fskills\u002Fgpui-test\u002FSKILL.md",true,[],[48,55,62,69,76,83],{"skillNo":49,"name":50,"nameZh":6,"description":51,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":52,"categories":53,"keywords":54,"publishedAt":19},"01M7CTDWHERCXPQCP0K03A86AS","vercel-sandbox","Run agent-browser + Chrome inside Vercel Sandbox microVMs for browser automation from any Vercel-deployed app. Use when the user needs browser automation in a Vercel app (Next.js, SvelteKit, Nuxt, Remix, Astro, etc.), wants to run headless Chrome without binary size limits, needs persistent browser sessions across commands, or wants ephemeral isolated browser environments. Triggers include \"Vercel Sandbox browser\", \"microVM Chrome\", \"agent-browser in sandbox\", \"browser automation on Vercel\", or any task requiring Chrome in a Vercel Sandbox.","https:\u002F\u002Fgithub.com\u002FYYC-Cube\u002FYYC3-Knowledge-Base\u002Fblob\u002Fmain\u002FYYC3-WebSpec-Web标准\u002FYYC3-WebSpec-Web标准-standards\u002Fbrowser-agent\u002Fskills\u002Fvercel-sandbox\u002FSKILL.md",[],[],{"skillNo":56,"name":57,"nameZh":6,"description":58,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":59,"categories":60,"keywords":61,"publishedAt":19},"01M7CTD8D2BNJY54S65M47HEJA","slack","Interact with Slack workspaces using browser automation. Use when the user needs to check unread channels, navigate Slack, send messages, extract data, find information, search conversations, or automate any Slack task. Triggers include \"check my Slack\", \"what channels have unreads\", \"send a message to\", \"search Slack for\", \"extract from Slack\", \"find who said\", or any task requiring programmatic Slack interaction.","https:\u002F\u002Fgithub.com\u002FYYC-Cube\u002FYYC3-Knowledge-Base\u002Fblob\u002Fmain\u002FYYC3-WebSpec-Web标准\u002FYYC3-WebSpec-Web标准-standards\u002Fbrowser-agent\u002Fskills\u002Fslack\u002FSKILL.md",[],[],{"skillNo":63,"name":64,"nameZh":6,"description":65,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":66,"categories":67,"keywords":68,"publishedAt":19},"01M7CTCSSB8ZP3Q58C3YZDZK1W","electron","Automate Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify, etc.) using agent-browser via Chrome DevTools Protocol. Use when the user needs to interact with an Electron app, automate a desktop app, connect to a running app, control a native app, or test an Electron application. Triggers include \"automate Slack app\", \"control VS Code\", \"interact with Discord app\", \"test this Electron app\", \"connect to desktop app\", or any task requiring automation of a native Electron application.","https:\u002F\u002Fgithub.com\u002FYYC-Cube\u002FYYC3-Knowledge-Base\u002Fblob\u002Fmain\u002FYYC3-WebSpec-Web标准\u002FYYC3-WebSpec-Web标准-standards\u002Fbrowser-agent\u002Fskills\u002Felectron\u002FSKILL.md",[],[],{"skillNo":70,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":75,"publishedAt":19},"01M7CTCBJY76688V4DCZGWFHGQ","dogfood","Systematically explore and test a web application to find bugs, UX issues, and other problems. Use when asked to \"dogfood\", \"QA\", \"exploratory test\", \"find issues\", \"bug hunt\", \"test this app\u002Fsite\u002Fplatform\", or review the quality of a web application. Produces a structured report with full reproduction evidence -- step-by-step screenshots, repro videos, and detailed repro steps for every issue -- so findings can be handed directly to the responsible teams.","https:\u002F\u002Fgithub.com\u002FYYC-Cube\u002FYYC3-Knowledge-Base\u002Fblob\u002Fmain\u002FYYC3-WebSpec-Web标准\u002FYYC3-WebSpec-Web标准-standards\u002Fbrowser-agent\u002Fskills\u002Fdogfood\u002FSKILL.md",[],[],{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":19},"01M7CTC4H0FFGVEAQR9PA4GA1A","agent-browser","Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to \"open a website\", \"fill out a form\", \"click a button\", \"take a screenshot\", \"scrape data from a page\", \"test this web app\", \"login to a site\", \"automate browser actions\", or any task requiring programmatic web interaction.","https:\u002F\u002Fgithub.com\u002FYYC-Cube\u002FYYC3-Knowledge-Base\u002Fblob\u002Fmain\u002FYYC3-WebSpec-Web标准\u002FYYC3-WebSpec-Web标准-standards\u002Fbrowser-agent\u002Fskills\u002Fagent-browser\u002FSKILL.md",[],[],{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":19},"01M7CTBKVFYBG78FDSABSDJTTQ","shadcn","Manages shadcn components and projects — adding, searching, fixing, debugging, styling, and composing UI, including chat interfaces. Provides project context, component docs, and usage examples. Applies when working with shadcn\u002Fui, component registries, presets, --preset codes, or any project with a components.json file. Also triggers for \"shadcn init\", \"create an app with --preset\", \"switch to --preset\", and for building a design system or applying a DESIGN.md or brand spec to shadcn\u002Fui.","https:\u002F\u002Fgithub.com\u002FYYC-Cube\u002FYYC3-Knowledge-Base\u002Fblob\u002Fmain\u002FYYC3-UI-界面组件\u002FYYC3-UI-界面组件-ui\u002Fskills\u002Fshadcn\u002FSKILL.md",[],[]]