{"owner":"gradio-app","repo":"gradio","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md"],"files":{"AGENTS.md":"# AGENTS.md\n\nInstructions for AI coding agents working on this repository.\n\n## Repository Structure\n\n- `gradio/` — Python source for the Gradio library (backend)\n  - `gradio/components/` — all Gradio components\n  - `gradio/cli/` — CLI commands (`gradio`, `gradio cc`, `gradio skills`, etc.)\n- `client/python/` — the `gradio_client` Python client library\n- `client/js/` — the `@gradio/client` JavaScript client library\n- `js/` — frontend code (Svelte/TypeScript), with each component in its own subdirectory\n- `test/` — Python backend tests (pytest)\n- `js/spa/test/` — browser/Playwright tests (`*.spec.ts`)\n- `demo/` — example Gradio apps\n- `guides/` — written guides and tutorials for the website\n\n## Pull Request Rules\n\nFollow these rules when creating or contributing to pull requests:\n\n1. **Target an issue.** Every non-trivial PR should reference an existing GitHub issue. If one doesn't exist, create it first. PRs without a linked issue may be closed.\n\n2. **Use the PR template.** Fill out every section of `.github/PULL_REQUEST_TEMPLATE.md`, including:\n   - A clear description of the change\n   - The AI disclosure checkbox (see below)\n   - The linked issue (`Closes: #NNN`)\n\n3. **AI disclosure is mandatory.** If AI was used in any non-trivial way (drafting code, writing the PR description, etc.), you must disclose this in the PR template. Trivial autocomplete does not need to be disclosed. All AI-generated code must be self-reviewed.\n\n4. **Format your code before pushing.**\n   - Backend: `bash scripts/format_backend.sh`\n   - Frontend: `bash scripts/format_frontend.sh`\n\n5. **Tests must pass.** PRs are only merged when CI is green. Run backend tests locally with `bash scripts/run_backend_tests.sh`.\n\n6. **PR title and description should be clear and written in English.** The title should concisely describe *what* the PR does. The description should explain *why*.\n\n7. **Don't write changeset files.** A GitHub Action adds `.changeset/*.md` to your branch from the PR title, so a good title is all that's needed. The bot leaves an existing changeset alone, so a hand-written one silently replaces your title in the changelog.\n\n8. **Submit against `main`.** All PRs target the `main` branch.\n\n## Code Style\n\n- Python code is formatted with `ruff`. Run `bash scripts/format_backend.sh`.\n- Frontend code is formatted with `prettier`. Run `bash scripts/format_frontend.sh`.\n- Be consistent with the style of the surrounding code.\n\n## Agentic Contribution Policy\n\nThese rules apply to all AI-assisted contributions to this repository. Do not skip them.\n\n### Mandatory duplicate-work checks\n\nBefore proposing a PR, check for overlapping open PRs and issue ownership.\n\n- If an open PR already addresses the same fix, do not open another.\n- If your approach is materially different, explain the difference and why a second PR is needed in the issue thread.\n\n### No low-value busywork PRs\n\n- Do not open one-off PRs for tiny edits (single typo, isolated lint cleanup, one mutable default argument, etc.).\n- Mechanical cleanups are acceptable only when bundled into a clear, systematic scope — not as isolated first contributions.\n\n### Human accountability\n\n- Pure code-agent PRs are not allowed. A human contributor must understand and be able to defend the change.\n- The submitting human is responsible for reviewing every changed line and running relevant tests.\n\n## More Details\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for full setup instructions, testing details, and the contribution workflow.\n"}}