python
Skill0 starsChanged 4 months agoMITView on GitHub
Applies senior Python rules for typing, async, APIs, persistence, tests, packaging, and architecture.
We split this skill into the rules it gives an agent
40 rules. 0 are common, 32 are distinctive, and 8 are very specific to this project.
0
Common
Most of the 40 edited versions we read keep these.
32
Distinctive
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 14
Before changing Python code, inspect relevant files when present:
- Distinctive: line 39
Do not assume framework, ORM, validator, or test runner without evidence.
- Very specific: line 43
Use uv for environment, dependency, lock, and command execution workflows when the project already uses uv or the user approves adopting it.
- Very specific: line 45
Use ruff for linting and formatting when configured or available locally.
- Very specific: line 46
Use ty for type checking when configured, requested, or clearly the strongest available local type checker.
- Very specific: line 48
Do not introduce uv, ruff, or ty as project requirements solely because this skill prefers them.
- Distinctive: line 53
Follow existing project style first.
- Distinctive: line 54
Prefer explicit functions and small modules.
- Very specific: line 55
Avoid dumping code into utils.py, helpers.py, or common.py unless the repository already uses that pattern and the addition is cohesive.
- Distinctive: line 56
Keep imports clean and localize optional/heavy imports only when justified.
- Distinctive: line 57
Avoid import-time side effects.
- Distinctive: line 58
Avoid mutable global state.
- Distinctive: line 62
Use the configured Python version.
- Distinctive: line 64
If the project version cannot be confirmed, avoid syntax and stdlib features newer than Python 3.10 unless the user approves.
- Distinctive: line 66
Do not assume Python 3.12+ without confirmation.
- Distinctive: line 70
Use type hints for new or modified public functions and methods unless this conflicts with project style.
- Very specific: line 87
If new Any is used, justify it briefly.
- Distinctive: line 89
Do not mass-retrofit typing outside task scope.
- Distinctive: line 94
Avoid boolean flags that radically change behavior.
- Distinctive: line 95
Prefer returning values over mutating shared state.
- Distinctive: line 96
Use classes when they represent state, lifecycle, interface implementation, dependency grouping, or polymorphic behavior.
- Distinctive: line 97
Do not create classes just to wrap one function.
- Distinctive: line 101
Use the established project model approach:
- Distinctive: line 110
Do not introduce a modeling library unless already used or explicitly requested.
- Very specific: line 114
Do not use bare except.
- Distinctive: line 129
Do not log and re-raise unless there is a clear reason.
- Distinctive: line 137
never block the event loop with sync I/O.
- Distinctive: line 138
use timeouts for external calls where appropriate.
- Very specific: line 141
do not ignore asyncio.CancelledError.
- Distinctive: line 147
Before changing persistence code, inspect:
- Distinctive: line 159
do not invent table or column names.
- Distinctive: line 162
do not bury business logic in persistence code unless the project intentionally does so.
- Distinctive: line 163
add migrations when schema changes require them.
- Distinctive: line 167
Do not assume a framework.
- Distinctive: line 169
If a framework is present:
- Distinctive: line 171
keep handlers/controllers thin.
- Distinctive: line 173
use existing dependency injection style.
- Distinctive: line 174
keep business logic out of transport layer.
- Distinctive: line 176
avoid leaking internals in public errors.
- Distinctive: line 180
Use the existing test setup.
“Common” is measured: kept by at least 6 in 10 of the 40 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Skill: python
Purpose
Apply the shared engineering style to Python projects while respecting existing repository conventions.
Inspect First
Before changing Python code, inspect relevant files when present:
pyproject.tomlrequirements.txtsetup.pysetup.cfgtox.inipytest.inimypy.ini.ruff.tomlruff.toml.pre-commit-config.yaml- Docker/CI files
- existing source and test files
Infer:
- Python version;
- dependency manager;
- formatter/linter;
- test runner;
- typing level;
- package structure;
- async/sync conventions.
Do not assume framework, ORM, validator, or test runner without evidence.
Tooling Defaults
- Use
uvfor environment, dependency, lock, and command execution workflows when the project already usesuvor the user approves adopting it. - Use
rufffor linting and formatting when configured or available locally. - Use
tyfor type checking when configured, requested, or clearly the strongest available local type checker. - Do not introduce
uv,ruff, ortyas project requirements solely because this skill prefers them.
Style
- Follow existing project style first.
- Prefer explicit functions and small modules.
- Avoid dumping code into
utils.py,helpers.py, orcommon.pyunless the repository already uses that pattern and the addition is cohesive. - Keep imports clean and localize optional/heavy imports only when justified.
- Avoid import-time side effects.
- Avoid mutable global state.
Python Version
Use the configured Python version.
If the project version cannot be confirmed, avoid syntax and stdlib features newer than Python 3.10 unless the user approves.
Do not assume Python 3.12+ without confirmation.
Typing
Use type hints for new or modified public functions and methods unless this conflicts with project style.
Prefer:
- concrete types where useful;
collections.abcinterfaces;Protocolfor structural interfaces;TypedDictor existing models for structured dictionaries;Literalfor constrained values;- precise optionality.
Avoid Any unless:
- required by a third-party API;
- the value is genuinely dynamic;
- narrowing would add false precision.
If new Any is used, justify it briefly.
Do not mass-retrofit typing outside task scope.
Functions and Classes
- Keep functions cohesive.
- Avoid boolean flags that radically change behavior.
- Prefer returning values over mutating shared state.
- Use classes when they represent state, lifecycle, interface implementation, dependency grouping, or polymorphic behavior.
- Do not create classes just to wrap one function.
Data Models
Use the established project model approach:
- dataclasses;
- Pydantic;
- attrs;
- ORM models;
- plain typed objects;
- domain entities.
Do not introduce a modeling library unless already used or explicitly requested.
Error Handling
Do not use bare except.
Avoid:
try:
...
except Exception:
passUse specific exceptions.
Preserve error context.
Do not log and re-raise unless there is a clear reason.
Domain errors should follow existing project patterns.
Async
For async code:
- never block the event loop with sync I/O;
- use timeouts for external calls where appropriate;
- avoid orphan tasks;
- handle cancellation correctly;
- do not ignore
asyncio.CancelledError; - manage task lifecycle when using
asyncio.create_task; - protect shared mutable state.
Database / ORM
Before changing persistence code, inspect:
- models;
- migrations;
- repositories;
- transaction boundaries;
- indexes;
- constraints;
- query style.
Rules:
- do not invent table or column names;
- avoid N+1 queries;
- preserve transactions for multi-step writes;
- do not bury business logic in persistence code unless the project intentionally does so;
- add migrations when schema changes require them.
API Frameworks
Do not assume a framework.
If a framework is present:
- keep handlers/controllers thin;
- validate inputs;
- use existing dependency injection style;
- keep business logic out of transport layer;
- return consistent response models;
- avoid leaking internals in public errors.
Tests and Validation
Use the existing test setup.
Common validation commands, only when configured or clearly available:
uv run pytest
pytest
python -m pytest
ruff check .
ruff format --check .
ty check
mypy .
pyrightReport exact commands and results.
Shared Cross-Ecosystem Style
Apply the shared engineering style from:
../../engineering/05_design_principles.md../../engineering/06_responsibility_model.md../../engineering/07_complexity_budget.md../../engineering/12_naming_bible.md
Language-specific idioms control syntax and ecosystem details, but they must not weaken the core rules: small cohesive units, explicit boundaries, honest validation, no dumping grounds, and no fake placeholders.
Other versions43 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 43
- alinaqi/maggy★ 711same name
- alinaqi/claude-bootstrap★ 708same name
- Mindrally/skills★ 275same name
- kid-sid/claude-spellbook★ 190same name
- hass-energy/haeo★ 72same name
- nimadorostkar/Claude-Skills-collection★ 33same name
- maroffo/claude-forge★ 17same name
- G1Joshi/Agent-Skills★ 15same name
- kissgyorgy/coding-agents★ 15same name
- harness-studio/harness-studio★ 9same name
33 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
Used alongsideProjects with it also use android-kotlin, java and 8 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
alinaqiSkillandroid-kotlin
Android Kotlin development with Coroutines, Jetpack Compose, Hilt, and MockK testing
Also in 4 projects that use this
infiniumtekSkilljava
Expert code-review guidance for Java (.java) changes. Flags correctness bugs, concurrency hazards, security vulnerabilities, performance problems, and unidiomatic code in a diff. Use when reviewing modified or added Java source.
Also in 4 projects that use this
ffsshhttiikkSkillcsharp
C# programming language best practices and patterns
Also in 4 projects that use this
joshuaramkissoonSkillswift
Guide for building SwiftUI features following MVVM architecture. Use when working on iOS/macOS Swift projects, creating views, ViewModels, implementing features, refactoring Swift code, or any SwiftUI development task. Ensures consistency with existing codebase patterns and design systems.
Also in 4 projects that use this
carapace-shSkillruby
Use when working with Ruby — the dynamic, object-oriented language and its runtime (MRI/CRuby). Covers the object model, metaprogramming, core types, blocks/procs/lambdas, control flow and exceptions, I/O and encoding, the concurrency model (Threads, Fibers, Ractors, GVL), garbage collection and ObjectSpace, the RubyGems/Bundler package system, the interpreter CLI and tooling (irb, erb, rake, rdoc/ri), environment variables, and the standard library. Triggers on: "ruby", "Ruby", "MRI", "CRuby", "YARV", "Ripper", "object model", "method lookup", "eigenclass", "singleton class", "metaprogramming", "define_method", "method_missing", "class_eval", "instance_eval", "Refinements", "Binding", "Proc", "lambda", "block", "yield", "rescue", "ensure", "raise", "begin", "end", "Encoding", "String#encode", "Thread", "Fiber", "Ractor", "GVL", "GIL", "Mutex", "ObjectSpace", "GC", "WeakRef", "gem", "Gemfile", "Bundler", "gemspec", "bundle exec", "irb", "erb", "rake", "Rakefile", "rdoc", "ri", "RUBYOPT", "RUBYLIB", "GEM_HOME", "GEM_PATH", "BUNDLE_GEMFILE", "frozen string literal", "RUBY_VERSION", "RUBY_ENGINE".
Also in 4 projects that use this
ffsshhttiikkSkillflutter
Flutter cross-platform framework
Also in 3 projects that use this
In this repository62 other files it gives its agents.
- AGENTS.mdAGENTS.md
- accessibility-ui-reviewSkill
- agent-retrospectiveSkill
- agents-md-retrospectiveSkill
- agent-squadSkill
- architecture-mapSkill
- architecture-normalizerSkill
- architecture-principlesSkill
- authz-boundary-reviewSkill
- c-cppSkill
- code-qualitySkill
- code-reviewSkill
- code-to-figmaSkill
- code-wiki-ruSkill
- context-packSkill
- core-engineeringSkill
- debuggingSkill
- dependency-advisory-auditSkill
- deserialization-parser-reviewSkill
- design-system-extractorSkill
- documentationSkill
- engineering-standardsSkill
- esp32Skill
- esphomeSkill
- external-agent-pack-auditSkill
- fastSkill
- figma-to-codeSkill
- fix-security-findingSkill
- goSkill
- homeassistantSkill
- mcp-tool-routerSkill
- migration-plannerSkill
- mobile-qaSkill
- multi-agent-pr-reviewSkill
- performanceSkill
- playwright-visual-qaSkill
- quality-gatesSkill
- refactoringSkill
- responsive-breakpoint-checkSkill
- review-routerSkill
- rustSkill
- secrets-and-config-reviewSkill
- security-diff-reviewSkill
- security-routerSkill
- securitySkill
- session-memorySkill
- specialist-dispatchSkill
- subagent-result-mergeSkill
- supply-chain-reviewSkill
- tdd-guardSkill
- testing-tddSkill
- threat-modelSkill
- typescriptSkill
- ui-buildSkill
- ui-business-appsSkill
- ui-concept-firstSkill
- ui-figmaSkill
- ui-qaSkill
- ui-researchSkill
- ui-routerSkill
- The first 60 shown.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

