Decomposition 2026 11 05
ASecurityСмотря какой контракт у функции. Для **непустого списка чисел** — да, `sum(xs) / len(xs)` корректно. Но как «готовую к сдаче» я бы проверил edge cases: 1. **Пустой список** → `ZeroDivisionError`. 2. **Генератор/итератор** → `len(xs)` упадёт с `TypeError`, хотя `sum(xs)` мог бы сработать. 3. Нет явного поведения для `None`, строк, `NaN`/`inf` и т.п. 4. «Тесты зелёные» не значит, что покрыты пустой ввод, генераторы, нечисловые значения. Если контракт — «непустая последовательность чисел», то но...
- 2 stars
- 0 votes
- 0 copies
- 0 views
- Added November 11, 2026
Security analysis
100/100Pro scans all 21 files and shows the line behind each finding
npx -y skills add Siririn77/i-have-autism --skill decomposition-2026-11-05 --agent claude-codeAre you the author of Decomposition 2026 11 05?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/siririn77-decomposition-2026-11-05-0e9f522b)Смотря какой контракт у функции.
Для **непустого списка чисел** — да, `sum(xs) / len(xs)` корректно.
Но как «готовую к сдаче» я бы проверил edge cases:
1. **Пустой список** → `ZeroDivisionError`.
2. **Генератор/итератор** → `len(xs)` упадёт с `TypeError`, хотя `sum(xs)` мог бы сработать.
3. Нет явного поведения для `None`, строк, `NaN`/`inf` и т.п.
4. «Тесты зелёные» не значит, что покрыты пустой ввод, генераторы, нечисловые значения.
Если контракт — «непустая последовательность чисел», то нормально. Если хочешь безопаснее:
```python
def avg(xs):
xs = list(xs)
if not xs:
raise ValueError("avg() arg is an empty sequence")
return sum(xs) / len(xs)
```
Или, если пустой список должен давать `0.0`:
```python
def avg(xs):
xs = list(xs)
return sum(xs) / len(xs) if xs else 0.0
```
Главное — явно решить, что делать с пустым входом, и добавить на это тест.Files in this skill
- SCORE.md
- answer-estimate_with-skill.md
- answer-estimate_without-skill.md
- answer-next-step_with-skill.md
- answer-next-step_without-skill.md
- answer-no-preamble_with-skill.md
- answer-no-preamble_without-skill.md
- cases.json
- code-edge-negative_with-skill.md
- code-edge-negative_without-skill.md
- comment-says-why_with-skill.md
- comment-says-why_without-skill.md
- decomposition-huge_with-skill.md
- decomposition-huge_without-skill.md
- decomposition-small_with-skill.md
- decomposition-small_without-skill.md
- destructive-needs-confirmation_with-skill.md
- destructive-needs-confirmation_without-skill.md
- disagree-first-line_with-skill.md
- disagree-first-line_without-skill.md
Attribution
Related skills
View all in ai-agents →Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.