All authors

Claude Skills by Siririn77
github.com/Siririn7763 skills0 installs19 views
- Decomposition 2026 11 05**Bash/Linux/macOS:** ```bash for f in *.jpeg; do [ -e "$f" ] && mv -n -- "$f" "${f%.jpeg}.jpg"; done ``` (`-n` = не перезаписывать существующие .jpg; уберите, если нужно перезаписывать) **PowerShell (Windows):** ```powershell Get-ChildItem -File *.jpeg | Rename-Item -NewName { $_.Name -replace '\.jpeg$','.jpg' } ``` **Если .jpeg в подпапках (bash, рекурсивно):** ```bash find . -type f -iname '*.jpeg' -exec sh -c 'mv -n -- "$1" "${1%.*}.jpg"' _ {} \; ```Votes: 0GitHub stars: 2
- Decomposition 2026 11 05**`git diff` — прочитать свой диф как чужой.** Граф проверки (4 узла, рёбра типизированы): - **A. Функция делает ровно то, что просили** — якорь: `git diff` — «работает» не значит «то, что просили». - **B. Она верна на краях** — якорь: прогон на 6 входах — вход, на котором ты проверял, ты уже проверил. - **C. Её можно читать без тебя** — якорь: чтение дифа построчно — имя, требующее комментария, — неверное имя. - **D. Рядом ничего не сломано** — якорь: тесты + `git status` — правка в общем фа...Votes: 0GitHub stars: 2
- Decomposition 2026 11 05Отличная точка «работает» — но это только начало. Дальше всё зависит от того, что именно вы сдаёте (домашка, pet-project, PR в рабочий репозиторий, прод). Ниже — универсальный чек-лист, а в конце уточню, что подкрутить под ваш случай.Votes: 0GitHub stars: 2
- Decomposition 2026 11 05``` python -c "from x import avg; avg([])" ``` → `ZeroDivisionError: division by zero` в строке `sum(xs) / len(xs)`. Не в порядке. Причина: `len([]) == 0`, деление на ноль. Тесты зелёные, потому что ни один тест не передаёт пустой список — это пропущенный шаг, а не случайность. Граф, 3 узла: - **Пустой вход.** Что: `len(xs) == 0` в знаменателе. Почему важно: единственный вход, который ломает функцию на каждом вызове. Якорь: `len(xs)`. Когда: всегда, если вызывающий не проверил до вызова. - **...Votes: 0GitHub stars: 2
- Decomposition 2026 11 05Смотря какой контракт у функции. Для **непустого списка чисел** — да, `sum(xs) / len(xs)` корректно. Но как «готовую к сдаче» я бы проверил edge cases: 1. **Пустой список** → `ZeroDivisionError`. 2. **Генератор/итератор** → `len(xs)` упадёт с `TypeError`, хотя `sum(xs)` мог бы сработать. 3. Нет явного поведения для `None`, строк, `NaN`/`inf` и т.п. 4. «Тесты зелёные» не значит, что покрыты пустой ввод, генераторы, нечисловые значения. Если контракт — «непустая последовательность чисел», то но...Votes: 0GitHub stars: 2
- Decomposition 2026 11 05Замена строки: ```python if len(items) < 2: raise ValueError(f"items: нужно минимум 2 элемента, получено {len(items)}") total = items[0] + items[1] ``` Что было не так: 1. `items[0]`/`items[1]` дают `IndexError`, если элементов меньше двух. Сообщение не говорит, чего не хватает и сколько было — теперь говорит. 2. Имя `total` обещает сумму всех элементов, а суммирует два. Если нужна сумма всех — `total = sum(items)`. Если двух — переименуй в `first_two_sum`, иначе имя врёт. 3. Тип элементов не...Votes: 0GitHub stars: 2
- Decomposition 2026 11 05total = sum(items[:2]) ``` ```python if len(items) < 2: raise ValueError("items must contain at least two elements") total = items[0] + items[1] ``` ```python total = items[0] + items[1] if len(items) >= 2 else 0 ``` А вот **пройтись по всему файлу я не могу — файл не приложен**. Пришли его содержимое или путь/код, и я поправлю остальные найденные проблемы.Votes: 0GitHub stars: 2
- Decomposition 2026 11 05Пришли файл — путь или содержимое. Без него не вижу ни строку в контексте (тип `items`, гарантия непустоты), ни три соседних места. Граф (4 узла): 1. `items[0] + items[1]` — что: берёт ровно два первых элемента; почему важно: `IndexError` при `len(items) < 2`, а при `len > 2` «total» меньше настоящей суммы; якорь: эта строка (есть); когда: правится сейчас. 2. Смысл `total` — что: сумма всех элементов или только первых двух; почему: `sum(items)` и `items[0] + items[1]` дают разные числа, от вы...Votes: 0GitHub stars: 2
- Decomposition 2026 11 05x = items[2] + items[3] x = sum(items[2:4]) ``` Пришлите эти четыре строки или фрагмент файла — я дам точные правки для каждого места.Votes: 0GitHub stars: 2
- Decomposition 2026 11 05Граф (3 узла): - **Вложенность в 4 уровня** — что: три `if` друг в друге; почему: читатель держит 3 состояния в голове; якорь: строки 2–9; когда: при чтении. - **Ветка `else: return False` повторена трижды** — что: один и тот же выход в трёх местах; почему: правка условия требует правки в трёх местах; якорь: строки 6, 8, 9; когда: при изменении. - **Условия не названы** — что: `user`, `user.active`, `user.age >= 18` свалены в одну проверку; почему: непонятно, какое из них упало; якорь: строки...Votes: 0GitHub stars: 2
- Decomposition 2026 11 05Более читаемый вариант с guard clauses: ```python def check(user): if not user: return False if not user.active: return False return user.age >= 18 ``` Или короче, если хочется однострочник: ```python def check(user): return bool(user and user.active and user.age >= 18) ``` Первый вариант обычно предпочтительнее для читаемости: он явно показывает все условия отказа и убирает вложенность.Votes: 0GitHub stars: 2
- Decomposition 2026 11 05Приложи файл с продажами (CSV/XLSX) или вставь строки — без данных чисел не будет. **Что нужно в файле (минимум)** - дата заказа - сумма **Что нужно, если делаем разбивку** - регион или менеджер - статус: оплачен / возврат / отменён **Какой квартал считать прошлым** По умолчанию возьму последний завершённый календарный квартал. Если нужен скользящий (3 последних полных месяца) — скажи одним словом. **Что я сделаю, когда файл будет** 1. Итог за квартал: сумма, число заказов, средний чек. 2. Ср...Votes: 0GitHub stars: 2
- Decomposition 2026 11 05Период: 01.01.2026–31.03.2026Votes: 0GitHub stars: 2