scipy-best-practices — скилл для Claude Code: правила работы с SciPy
Скилл задаёт агенту правила научных вычислений на SciPy: оптимизация, линейная алгебра, статистика, сигналы. Пригодится, когда код на Python считает числа, а не рисует интерфейсы.
npx skills add Mindrally/skills --skill scipy-best-practices -a claude-codeЧто делает scipy-best-practices
Скилл — это набор инструкций, которые агент подхватывает при работе с Python-кодом на SciPy. Внутри разложены по разделам рекомендации: какой метод оптимизации брать под задачу, как решать линейные системы, как строить фильтры и считать статистику. Агент получает готовую карту решений вместо того, чтобы каждый раз выбирать наугад.
По оптимизации скилл советует scipy.optimize.minimize() и разводит методы по условиям: 'BFGS' для гладких задач без ограничений, 'L-BFGS-B' при границах, 'SLSQP' при ограничениях, 'Nelder-Mead' для недифференцируемых функций. Для линейной алгебры — scipy.linalg.solve() вместо обращения матрицы, для больших разреженных систем — решатели из scipy.sparse.linalg. Отдельные разделы про интерполяцию, интегралы, solve_ivp() для дифференциальных уравнений и обработку сигналов через filtfilt() и find_peaks().
Есть разделы про производительность и проверку результатов: контроль сходимости, тесты против аналитических решений, np.testing.assert_allclose() для сравнения чисел. Скилл опирается на SciPy и NumPy — без них примеры из него не запустятся. Ставить стоит, если вы пишете расчёты и хотите, чтобы агент не изобретал метод там, где в документации SciPy уже есть ответ.
Какие задачи решает
- выбрать метод оптимизации под задачу с ограничениями
- решить линейную систему без обращения матрицы
- подобрать фильтр и применить его без сдвига фазы
- посчитать статистику и проверить гипотезу
- протестировать численный код против аналитического решения
Примеры запросов агенту
- напиши функцию оптимизации через scipy.optimize.minimize с методом SLSQP
- перепиши этот цикл на векторизованные операции SciPy
- добавь тесты с np.testing.assert_allclose для этой функции
Как установить scipy-best-practices
1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill scipy-best-practices -a claude-code2Вручную: положить файлы
~/.claude/skills/scipy-best-practices/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/scipy-best-practices/
1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill scipy-best-practices -a codex2Вручную: положить файлы
.agents/skills/scipy-best-practices/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill scipy-best-practices -a cursor2Вручную: положить файлы
.cursor/skills/scipy-best-practices/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install Mindrally/skills scipy-best-practices2Вручную: положить файлы
.github/skills/scipy-best-practices/SKILL.md1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill scipy-best-practices -a gemini-cli2Командой платформы
gemini skills install https://github.com/Mindrally/skills --path scipy-best-practicesВручную: положить файлы
.devin/skills/scipy-best-practices/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill scipy-best-practices -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о scipy-best-practices
Как установить scipy-best-practices в Claude?
Выполните npx skills add Mindrally/skills --skill scipy-best-practices -a claude-code. Файл скилла окажется по пути ~/.claude/skills/scipy-best-practices/SKILL.md.
Что делает scipy-best-practices?
Задаёт агенту правила разработки на SciPy: выбор методов оптимизации, работа с линейной алгеброй, статистикой, интерполяцией, интегралами и сигналами. Плюс рекомендации по производительности и тестированию численного кода.
С какими платформами совместим скилл?
Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI и OpenCode. Для каждой платформы своя команда установки, файл кладётся в её каталог скиллов.
Исходный текст
SKILL.md · Apache-2.0
--- name: scipy-best-practices description: Best practices for SciPy scientific computing, optimization, signal processing, and statistical analysis in Python metadata: maintainer: Mindrally source: https://github.com/Mindrally/skills --- # SciPy Best Practices Expert guidelines for SciPy development, focusing on scientific computing, optimization, signal processing, and statistical analysis. ## Code Style and Structure - Write concise, technical Python code with accurate SciPy examples - Prioritize numerical accuracy and computational efficiency - Use functional programming patterns for mathematical operations - Prefer vectorized operations over explicit loops - Use descriptive variable names reflecting scientific context - Follow PEP 8 style guidelines ## scipy.optimize - Optimization - Use `scipy.optimize.minimize()` for general-purpose optimization - Choose appropriate method based on problem characteristics: - `'BFGS'` for smooth, unconstrained problems - `'L-BFGS-B'` for bounded problems - `'SLSQP'` for constrained optimization - `'Nelder-Mead'` for non-differentiable functions - Provide gradients when available for faster convergence - Use `scipy.optimize.curve_fit()` for nonlinear least squares fitting - Use `scipy.optimize.root()` for finding roots of equations ## scipy.linalg - Linear Algebra - Prefer `scipy.linalg` over `numpy.linalg` for additional functionality - Use `scipy.linalg.solve()` instead of computing matrix inverse - Leverage specialized solvers for structured matrices (banded, triangular) - Use `scipy.linalg.lu_factor()` and `lu_solve()` for multiple right-hand sides - Use sparse matrix solvers from `scipy.sparse.linalg` for large sparse systems ## scipy.stats - Statistics - Use distribution objects for probability calculations - Leverage `scipy.stats.describe()` for summary statistics - Use hypothesis testing functions: `ttest_ind()`, `chi2_contingency()`, `mannwhitneyu()` - Generate random samples with `.rvs()` method on distributions - Use `.fit()` for parameter estimation from data ## scipy.interpolate - Interpolation - Use `scipy.interpolate.interp1d()` for 1D interpolation - Use `scipy.interpolate.griddata()` for scattered data interpolation - Choose appropriate interpolation method: 'linear', 'cubic', 'nearest' - Use spline functions for smooth interpolation: `UnivariateSpline`, `BSpline` - Consider `RegularGridInterpolator` for regular grid data ## scipy.integrate - Integration - Use `scipy.integrate.quad()` for single integrals - Use `scipy.integrate.dblquad()`, `tplquad()` for multiple integrals - Use `scipy.integrate.solve_ivp()` for ordinary differential equations - Choose appropriate ODE method: 'RK45', 'BDF', 'LSODA' - Provide Jacobian for stiff systems to improve performance ## scipy.signal - Signal Processing - Use `scipy.signal.butter()`, `cheby1()`, `ellip()` for filter design - Apply filters with `scipy.signal.filtfilt()` for zero-phase filtering - Use `scipy.signal.welch()` for power spectral density estimation - Use `scipy.signal.find_peaks()` for peak detection - Leverage `scipy.signal.convolve()` and `correlate()` for convolution ## scipy.sparse - Sparse Matrices - Use appropriate sparse format for your use case: - `csr_matrix` for efficient row slicing and matrix-vector products - `csc_matrix` for efficient column slicing - `coo_matrix` for constructing sparse matrices - `lil_matrix` for incremental construction - Convert to optimal format before operations - Use `scipy.sparse.linalg` solvers for sparse linear systems ## Performance Optimization - Use appropriate data types (`float64` for precision, `float32` for memory) - Leverage BLAS/LAPACK through SciPy for optimized linear algebra - Pre-allocate arrays when possible - Use in-place operations when available ## Error Handling and Validation - Check convergence status of optimization routines - Validate numerical results for reasonableness - Handle ill-conditioned problems gracefully - Use appropriate tolerances for convergence criteria ## Testing Scientific Code - Test against known analytical solutions - Use `np.testing.assert_allclose()` for numerical comparisons - Test edge cases and boundary conditions - Verify conservation laws and invariants ## Key Conventions - Import specific submodules: `from scipy import optimize, stats, linalg` - Use `snake_case` for variables and functions - Document algorithm choices and parameters - Include convergence diagnostics in output
© Mindrally · Apache-2.0 · Mindrally/skills