{"owner":"aio-libs","repo":"aiohttp","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["CLAUDE.md","AGENTS.md"],"skills":{"CLAUDE.md":"@~/.claude/aio-libs/context.md\n@~/.claude/aio-libs/aiohttp/context.md\n@AGENTS.md\n@CLAUDE.local.md\n","AGENTS.md":"# AGENTS.md\n\nThis file provides guidance to AI coding agents working with this repository.\n\n## Branching\n\n- All new features and bug fixes target `master`. A bot creates backports to the `x.y` release branches automatically.\n\n## Build\n\n- Full dev setup: `make install-dev` (installs deps, cythonizes, builds extensions)\n- Vendored llhttp: `git submodule update --init` + `make generate-llhttp` (requires Node.js)\n- Cython extensions: `make cythonize` (.pyx → .c), then `pip install -e .` to compile\n- Pure Python mode: `AIOHTTP_NO_EXTENSIONS=1 pip install -e .`\n- `AIOHTTP_CYTHON_TRACE=1` enables Cython trace macros (only useful with linetrace-enabled .c files)\n\n## Test\n\n- Run all: `PYTHONPATH='.' pytest --numprocesses=auto`\n- Single test: `PYTHONPATH='.' pytest tests/test_foo.py::test_name`\n- Pure Python only: `PYTHONPATH='.' AIOHTTP_NO_EXTENSIONS=1 pytest`\n\n## Lint & Format\n\n- `pre-commit run --all-files` runs all checks (black, isort, flake8, pyupgrade, codespell)\n- `black` for formatting only, `mypy` for type checking\n- black with 88-col line length, isort with trailing commas\n\n## Documentation & code style\n\n- User-visible API changes need a docs update under `docs/` (`docs/client_reference.rst` / `docs/web_reference.rst` plus any narrative pages).\n- Docstrings in code, prose in Sphinx; `make doc` builds locally.\n- No docstrings or comments that just restate the code.\n\n## Changelog\n\n- Fragments in `CHANGES/{pr_or_issue}.{type}.rst` (valid types are defined in `pyproject.toml` under `[tool.towncrier]`).\n- Sign with `` -- by :user:`github-handle` ``.\n- Both issue and PR number wanted: keep the issue-numbered file and symlink: `ln -s 1234.bugfix.rst CHANGES/1240.bugfix.rst`.\n- Multiple fragments same category: `1234.feature.rst`, `1234.feature.1.rst`.\n\n## PRs\n\n- **Prove it works before opening the PR**. This means:\n  - Relevant tests pass locally.\n  - New behaviour is covered by a test.\n  - Any parser/websocket related changes have been tested with Cython extensions installed.\n- Use the shipped template at [`.github/PULL_REQUEST_TEMPLATE.md`](.github/PULL_REQUEST_TEMPLATE.md).\n  - A couple of sentences per section is plenty.\n  - Tick checklist boxes that apply; write `N/A` next to ones that do not.\n  - First-time contributors add themselves to `CONTRIBUTORS.txt` (alphabetical by first name).\n- **Draft.** Use `gh pr create --draft`.\n  - Every submission must be reviewed by a human before going out of draft; that review is the operator's job, not the maintainers'.\n  - Do not mark ready or request reviewers yourself.\n- **Disclosure.** One plain line at the bottom: `Drafted with <agent name and version>; reviewed by <human handle>.`\n- **No `Co-Authored-By:`** LLM trailers in commits or PR body.\n- Agent run output (test logs) goes in a collapsed `<details>` block **below** the template summary.\n\n**Commits**: Don't use conventional commits; match recent imperative subjects.\n\n## Threat model\n\n`THREAT_MODEL.md` is a living document and should be revised when:\n\n- A CVE / GHSA is filed against aiohttp.\n- The parser configuration changes (llhttp lenient flags, size limits, version regex).\n- Any default referenced in the document changes (`client_max_size`, `keepalive_timeout`, `max_redirects`, `limit`, `limit_per_host`, etc.).\n- The vendored llhttp version is bumped.\n- A public API surface is added or removed in `client.py` / `web_*.py` / `multipart.py`.\n\nWhen a chunk's content is materially affected, update both the chunk and the relevant entries in §6.1–§6.4. The \"Past advisories / hardening (recap)\" subsection of each chunk is the audit trail for what has been verified-in-place.\n"},"files":{"CLAUDE.md":"@~/.claude/aio-libs/context.md\n@~/.claude/aio-libs/aiohttp/context.md\n@AGENTS.md\n@CLAUDE.local.md\n","AGENTS.md":"# AGENTS.md\n\nThis file provides guidance to AI coding agents working with this repository.\n\n## Branching\n\n- All new features and bug fixes target `master`. A bot creates backports to the `x.y` release branches automatically.\n\n## Build\n\n- Full dev setup: `make install-dev` (installs deps, cythonizes, builds extensions)\n- Vendored llhttp: `git submodule update --init` + `make generate-llhttp` (requires Node.js)\n- Cython extensions: `make cythonize` (.pyx → .c), then `pip install -e .` to compile\n- Pure Python mode: `AIOHTTP_NO_EXTENSIONS=1 pip install -e .`\n- `AIOHTTP_CYTHON_TRACE=1` enables Cython trace macros (only useful with linetrace-enabled .c files)\n\n## Test\n\n- Run all: `PYTHONPATH='.' pytest --numprocesses=auto`\n- Single test: `PYTHONPATH='.' pytest tests/test_foo.py::test_name`\n- Pure Python only: `PYTHONPATH='.' AIOHTTP_NO_EXTENSIONS=1 pytest`\n\n## Lint & Format\n\n- `pre-commit run --all-files` runs all checks (black, isort, flake8, pyupgrade, codespell)\n- `black` for formatting only, `mypy` for type checking\n- black with 88-col line length, isort with trailing commas\n\n## Documentation & code style\n\n- User-visible API changes need a docs update under `docs/` (`docs/client_reference.rst` / `docs/web_reference.rst` plus any narrative pages).\n- Docstrings in code, prose in Sphinx; `make doc` builds locally.\n- No docstrings or comments that just restate the code.\n\n## Changelog\n\n- Fragments in `CHANGES/{pr_or_issue}.{type}.rst` (valid types are defined in `pyproject.toml` under `[tool.towncrier]`).\n- Sign with `` -- by :user:`github-handle` ``.\n- Both issue and PR number wanted: keep the issue-numbered file and symlink: `ln -s 1234.bugfix.rst CHANGES/1240.bugfix.rst`.\n- Multiple fragments same category: `1234.feature.rst`, `1234.feature.1.rst`.\n\n## PRs\n\n- **Prove it works before opening the PR**. This means:\n  - Relevant tests pass locally.\n  - New behaviour is covered by a test.\n  - Any parser/websocket related changes have been tested with Cython extensions installed.\n- Use the shipped template at [`.github/PULL_REQUEST_TEMPLATE.md`](.github/PULL_REQUEST_TEMPLATE.md).\n  - A couple of sentences per section is plenty.\n  - Tick checklist boxes that apply; write `N/A` next to ones that do not.\n  - First-time contributors add themselves to `CONTRIBUTORS.txt` (alphabetical by first name).\n- **Draft.** Use `gh pr create --draft`.\n  - Every submission must be reviewed by a human before going out of draft; that review is the operator's job, not the maintainers'.\n  - Do not mark ready or request reviewers yourself.\n- **Disclosure.** One plain line at the bottom: `Drafted with <agent name and version>; reviewed by <human handle>.`\n- **No `Co-Authored-By:`** LLM trailers in commits or PR body.\n- Agent run output (test logs) goes in a collapsed `<details>` block **below** the template summary.\n\n**Commits**: Don't use conventional commits; match recent imperative subjects.\n\n## Threat model\n\n`THREAT_MODEL.md` is a living document and should be revised when:\n\n- A CVE / GHSA is filed against aiohttp.\n- The parser configuration changes (llhttp lenient flags, size limits, version regex).\n- Any default referenced in the document changes (`client_max_size`, `keepalive_timeout`, `max_redirects`, `limit`, `limit_per_host`, etc.).\n- The vendored llhttp version is bumped.\n- A public API surface is added or removed in `client.py` / `web_*.py` / `multipart.py`.\n\nWhen a chunk's content is materially affected, update both the chunk and the relevant entries in §6.1–§6.4. The \"Past advisories / hardening (recap)\" subsection of each chunk is the audit trail for what has been verified-in-place.\n"},"items":[{"name":"CLAUDE.md","path":"CLAUDE.md","title":"CLAUDE.md","content":"@~/.claude/aio-libs/context.md\n@~/.claude/aio-libs/aiohttp/context.md\n@AGENTS.md\n@CLAUDE.local.md\n","category":"root","tokens":25},{"name":"AGENTS.md","path":"AGENTS.md","title":"AGENTS.md","content":"# AGENTS.md\n\nThis file provides guidance to AI coding agents working with this repository.\n\n## Branching\n\n- All new features and bug fixes target `master`. A bot creates backports to the `x.y` release branches automatically.\n\n## Build\n\n- Full dev setup: `make install-dev` (installs deps, cythonizes, builds extensions)\n- Vendored llhttp: `git submodule update --init` + `make generate-llhttp` (requires Node.js)\n- Cython extensions: `make cythonize` (.pyx → .c), then `pip install -e .` to compile\n- Pure Python mode: `AIOHTTP_NO_EXTENSIONS=1 pip install -e .`\n- `AIOHTTP_CYTHON_TRACE=1` enables Cython trace macros (only useful with linetrace-enabled .c files)\n\n## Test\n\n- Run all: `PYTHONPATH='.' pytest --numprocesses=auto`\n- Single test: `PYTHONPATH='.' pytest tests/test_foo.py::test_name`\n- Pure Python only: `PYTHONPATH='.' AIOHTTP_NO_EXTENSIONS=1 pytest`\n\n## Lint & Format\n\n- `pre-commit run --all-files` runs all checks (black, isort, flake8, pyupgrade, codespell)\n- `black` for formatting only, `mypy` for type checking\n- black with 88-col line length, isort with trailing commas\n\n## Documentation & code style\n\n- User-visible API changes need a docs update under `docs/` (`docs/client_reference.rst` / `docs/web_reference.rst` plus any narrative pages).\n- Docstrings in code, prose in Sphinx; `make doc` builds locally.\n- No docstrings or comments that just restate the code.\n\n## Changelog\n\n- Fragments in `CHANGES/{pr_or_issue}.{type}.rst` (valid types are defined in `pyproject.toml` under `[tool.towncrier]`).\n- Sign with `` -- by :user:`github-handle` ``.\n- Both issue and PR number wanted: keep the issue-numbered file and symlink: `ln -s 1234.bugfix.rst CHANGES/1240.bugfix.rst`.\n- Multiple fragments same category: `1234.feature.rst`, `1234.feature.1.rst`.\n\n## PRs\n\n- **Prove it works before opening the PR**. This means:\n  - Relevant tests pass locally.\n  - New behaviour is covered by a test.\n  - Any parser/websocket related changes have been tested with Cython extensions installed.\n- Use the shipped template at [`.github/PULL_REQUEST_TEMPLATE.md`](.github/PULL_REQUEST_TEMPLATE.md).\n  - A couple of sentences per section is plenty.\n  - Tick checklist boxes that apply; write `N/A` next to ones that do not.\n  - First-time contributors add themselves to `CONTRIBUTORS.txt` (alphabetical by first name).\n- **Draft.** Use `gh pr create --draft`.\n  - Every submission must be reviewed by a human before going out of draft; that review is the operator's job, not the maintainers'.\n  - Do not mark ready or request reviewers yourself.\n- **Disclosure.** One plain line at the bottom: `Drafted with <agent name and version>; reviewed by <human handle>.`\n- **No `Co-Authored-By:`** LLM trailers in commits or PR body.\n- Agent run output (test logs) goes in a collapsed `<details>` block **below** the template summary.\n\n**Commits**: Don't use conventional commits; match recent imperative subjects.\n\n## Threat model\n\n`THREAT_MODEL.md` is a living document and should be revised when:\n\n- A CVE / GHSA is filed against aiohttp.\n- The parser configuration changes (llhttp lenient flags, size limits, version regex).\n- Any default referenced in the document changes (`client_max_size`, `keepalive_timeout`, `max_redirects`, `limit`, `limit_per_host`, etc.).\n- The vendored llhttp version is bumped.\n- A public API surface is added or removed in `client.py` / `web_*.py` / `multipart.py`.\n\nWhen a chunk's content is materially affected, update both the chunk and the relevant entries in §6.1–§6.4. The \"Past advisories / hardening (recap)\" subsection of each chunk is the audit trail for what has been verified-in-place.\n","category":"root","tokens":908}]}