{"id":47788141,"url":"https://github.com/ruslan-korneev/claude-plugins","last_synced_at":"2026-04-03T15:06:02.801Z","repository":{"id":333943987,"uuid":"1139361843","full_name":"ruslan-korneev/claude-plugins","owner":"ruslan-korneev","description":"Python Backend Plugins for Claude Code","archived":false,"fork":false,"pushed_at":"2026-03-03T23:21:57.000Z","size":343,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-03-04T03:39:56.591Z","etag":null,"topics":["backend","claude-code","claude-code-plugin","claude-code-plugins-marketplace","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ruslan-korneev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-21T21:30:55.000Z","updated_at":"2026-03-03T23:22:02.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ruslan-korneev/claude-plugins","commit_stats":null,"previous_names":["ruslan-korneev/python-backend-claude-plugins","ruslan-korneev/claude-plugins"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/ruslan-korneev/claude-plugins","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruslan-korneev%2Fclaude-plugins","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruslan-korneev%2Fclaude-plugins/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruslan-korneev%2Fclaude-plugins/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruslan-korneev%2Fclaude-plugins/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruslan-korneev","download_url":"https://codeload.github.com/ruslan-korneev/claude-plugins/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruslan-korneev%2Fclaude-plugins/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31359134,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-03T14:24:47.623Z","status":"ssl_error","status_checked_at":"2026-04-03T14:24:32.380Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backend","claude-code","claude-code-plugin","claude-code-plugins-marketplace","python"],"created_at":"2026-04-03T15:06:02.060Z","updated_at":"2026-04-03T15:06:02.750Z","avatar_url":"https://github.com/ruslan-korneev.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Python Backend Plugins for Claude Code\n\nA curated collection of Claude Code plugins for Python backend development with FastAPI, SQLAlchemy 2.0, and modern tooling.\n\n## Available Plugins\n\n| Plugin | Description | Key Commands |\n|--------|-------------|--------------|\n| [**ruff-lint**](plugins/ruff-lint/) | Linting with ruff (ZERO noqa policy) | `/lint:check`, `/lint:explain`, `/lint:config` |\n| [**pytest-assistant**](plugins/pytest-assistant/) | TDD testing patterns | `/test:first`, `/test:fixture`, `/test:mock` |\n| [**fastapi-scaffold**](plugins/fastapi-scaffold/) | FastAPI boilerplate generation | `/fastapi:module`, `/fastapi:dto`, `/fastapi:endpoint` |\n| [**python-typing**](plugins/python-typing/) | Type annotations (ZERO type:ignore) | `/types:check`, `/types:explain` |\n| [**docker-backend**](plugins/docker-backend/) | Docker for development | `/docker:run`, `/docker:file` |\n| [**alembic-migrations**](plugins/alembic-migrations/) | Database migrations with enum handling | `/migrate:create`, `/migrate:check` |\n| [**clean-code**](plugins/clean-code/) | SOLID principles \u0026 code smells | `/clean:review`, `/clean:refactor` |\n\n## Installation\n\n### From GitHub (recommended)\n\nInside Claude Code, run these slash commands:\n\n```\n# Add this marketplace\n/plugin marketplace add ruslan-korneev/claude-plugins\n\n# Install individual plugins\n/plugin install ruff-lint@python-backend-plugins\n/plugin install pytest-assistant@python-backend-plugins\n\n# Or install all plugins at once\n/plugin install ruff-lint pytest-assistant fastapi-scaffold python-typing docker-backend alembic-migrations clean-code@python-backend-plugins\n```\n\n### From local clone\n\n```bash\ngit clone https://github.com/ruslan-korneev/claude-plugins.git\ncd claude-plugins\n```\n\nThen inside Claude Code:\n\n```\n# Add local marketplace\n/plugin marketplace add ./\n\n# Install plugins\n/plugin install ruff-lint@python-backend-plugins\n```\n\n## Core Principles\n\nThese plugins enforce best practices for Python backend development:\n\n- **ZERO noqa / ZERO type:ignore** — Always fix properly, never suppress warnings\n- **TDD (Test-Driven Development)** — Write tests first, then implementation\n- **docker run first** — Use simple `docker run` before docker-compose\n- **TypedDict \u003e dict[str, Any]** — Strict dictionary typing with TypedDict\n- **Real test database** — Never mock the database in tests\n- **Branch coverage** — More important than line coverage\n\n## Plugin Structure\n\nEach plugin follows a consistent structure:\n\n```\nplugin-name/\n├── .claude-plugin/\n│   └── plugin.json          # Plugin manifest\n├── commands/\n│   └── *.md                 # Slash commands\n├── skills/\n│   └── skill-name/\n│       ├── SKILL.md         # Main skill entry point\n│       └── references/\n│           └── *.md         # Detailed documentation\n├── agents/                  # (optional) Specialized agents\n│   └── *.md\n├── hooks/                   # (optional) Automation hooks\n│   └── hooks.json\n└── README.md\n```\n\n## Usage Examples\n\n### Linting with ruff\n\n```\n/lint:check src/\n/lint:explain E501\n/lint:config fastapi\n```\n\n### TDD Testing\n\n```\n/test:first UserService.create\n/test:fixture async_session\n/test:mock external_api\n```\n\n### FastAPI Scaffolding\n\n```\n/fastapi:module users\n/fastapi:dto User\n/fastapi:endpoint GET /users/{id}\n```\n\n### Type Checking\n\n```\n/types:check src/\n/types:explain \"Argument of type X is not assignable to parameter of type Y\"\n```\n\n### Docker\n\n```\n/docker:run postgres\n/docker:file fastapi\n```\n\n### Database Migrations\n\n```\n/migrate:create add_user_status\n/migrate:check\n```\n\n### Code Review\n\n```\n/clean:review src/services/\n/clean:refactor extract_method\n```\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines on:\n- Adding new plugins\n- Improving existing plugins\n- Submitting bug reports\n\n## License\n\nMIT License - see [LICENSE](LICENSE) for details.\n\n## Security\n\nFor security concerns, see [SECURITY.md](SECURITY.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruslan-korneev%2Fclaude-plugins","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fruslan-korneev%2Fclaude-plugins","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruslan-korneev%2Fclaude-plugins/lists"}