Skip to content
Back to skills

Repo Development

ASecurity

"Maintain the einops repository safely: focused tests, backend/env

  • 247 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 8, 2026
datapythonnodegitapibackenddocumentation

Works with

  • api

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 6 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill repo-development --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Repo Development?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Repo Development
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-repo-development-716bdf63/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-repo-development-716bdf63)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: repo-development
description: "Maintain the einops repository safely: focused tests, backend/env
  selection, docs and notebook checks, formatting/type checking, CI matrix
  interpretation, release boundaries, and staleness refresh cues."
disable-model-invocation: true
metadata:
  disco-role: operating
license: MIT
---

# repo-development

Use this sub-skill when the task is about maintaining the `einops` repository rather
than writing package-usage recipes. It covers development commands, backend-aware
test selection, docs/notebook checks, README-to-docs conversion, CI interpretation,
packaging boundaries, and refresh/staleness checks.

For tensor operation patterns, API examples, framework-specific user code, or
named einsum/packing recipes, route to sibling sub-skills such as
`tensor-operations`, `named-einsum-and-packing`, or `framework-integrations`.

## Evidence scope

This guidance was distilled from these source-evidence names: `README.md`
Development section, `pyproject.toml`, `einops/tests/run_tests.py`,
`einops/tests/__init__.py`, `scripts/convert_readme.py`,
`scripts/test_notebooks.py`, `scripts/pytorch_examples_source/converter.py`,
`.github/workflows/run_tests.yml`, `.github/workflows/test_notebooks.yml`,
`.github/workflows/deploy_docs.yml`, `.github/workflows/deploy_to_pypi.yml`, and
`mkdocs.yml`.

Do not depend on machine-local checkout paths or environment-specific details.
Prefer the bundled references and scripts below; if repository development files
or workflows have changed since this skill was produced, perform a repo-skill
refresh before relying on stale commands.

## Quick routing

| Maintainer intent | Use this guidance |
|---|---|
| Run minimal package tests without installing all frameworks | [references/docs-and-tests.md](references/docs-and-tests.md#focused-package-tests) and `scripts/run_selected_einops_tests.py` |
| Interpret `EINOPS_TEST_BACKENDS` or framework names | [references/docs-and-tests.md](references/docs-and-tests.md#backend-selection-semantics) |
| Format, lint, or type-check changes | [references/docs-and-tests.md](references/docs-and-tests.md#format-lint-and-type-checks) |
| Build or serve documentation | [references/docs-and-tests.md](references/docs-and-tests.md#docs-build-and-readme-conversion) |
| Convert README content into docs index safely | `scripts/convert_readme_for_docs.py` |
| Check notebook dependencies or execute selected tutorials | [references/docs-and-tests.md](references/docs-and-tests.md#notebook-checks) and `scripts/notebook_execution_check.py` |
| Understand CI matrix coverage | [references/docs-and-tests.md](references/docs-and-tests.md#ci-matrix-notes) |
| Avoid unsafe deploy/publish steps | [references/docs-and-tests.md](references/docs-and-tests.md#release-and-deploy-boundaries) |
| Diagnose common maintainer failures | [references/maintainer-troubleshooting.md](references/maintainer-troubleshooting.md) |

## Safe command patterns

- Tests are distributed with the package. Use the native runner for broad checks:
  `python -m einops.tests.run_tests numpy`.
- Include `numpy` with backend tests unless intentionally investigating a
  symbolic-only case; the README says every framework is tested against numpy.
- Omit `--pip-install` when dependencies are already installed. That flag uses
  `pip install` in the current environment.
- For a dry-run plan or a focused pytest node, use the bundled wrapper:
  `python scripts/run_selected_einops_tests.py numpy --pytest-target test_ops.py::test_repeat_numpy`.
  Add `--execute` only when ready to run.
- For check-only style validation, prefer CI-like non-mutating commands:
  `ruff check .`, `ruff format . --check`, and `mypy .` in an environment with
  the default development dependencies.
- The Hatch `check` script in `pyproject.toml` is intentionally mutating:
  it runs `ruff format`, `ruff check --fix`, then `mypy`.

## Backend selection rules

- Native runner synonyms: `pytorch` -> `torch`, `tf` -> `tensorflow`, and
  `paddlepaddle` -> `paddle`.
- Exact backend names are comma-joined in `EINOPS_TEST_BACKENDS`, for example
  `EINOPS_TEST_BACKENDS=numpy,torch`.
- Missing `EINOPS_TEST_BACKENDS` is an error for tests that call the package test
  utilities directly. The native runner and bundled wrapper set it for you.
- Optional frameworks can conflict in one environment, especially TensorFlow,
  OneFlow, and Paddle protobuf stacks. Use a smaller backend set or a fresh
  environment instead of repairing a shared environment blindly.

## Docs and notebook safety

- `hatch run docs:build` and `hatch run docs:serve` first convert README content
  into the docs index, so they can mutate generated docs content.
- Use `scripts/convert_readme_for_docs.py --readme README.md --output docs_src/index.md`
  for a dry-run preview; add `--execute` only when the mutation is intended.
- Notebook execution needs notebook tooling plus runtime frameworks. CI installs
  `nbformat`, `nbconvert`, `jupyter`, `pillow`, `pytest`, `numpy`, `tensorflow`,
  and CPU `torch` before running notebook tests.
- Use `scripts/notebook_execution_check.py` to list missing dependencies and, if
  approved, execute named notebooks with `--execute` and a bounded timeout.

## CI and release boundaries

- Test CI runs Python 3.10, 3.11, and 3.13 for the main backend bundle
  `numpy pytorch tensorflow jax mlx.core`, plus `pytensor` on Python 3.10 and
  3.13.
- CI ruff compliance uses a check-only form: `ruff check .` and
  `ruff format . --check`.
- Docs deploy is a GitHub workflow with repository write permission and a
  force deploy command. Treat it as credentialed infrastructure, not a local
  maintainer default.
- PyPI deploy is triggered by a GitHub release and uses `UV_PUBLISH_TOKEN` from
  a secret. Local `uv publish` commands are outside this sub-skill except as a
  boundary warning.
- Safe packaging inspection may run build-only commands in an isolated release
  rehearsal, but never run credentialed publish/deploy steps unless the human
  maintainer explicitly owns the credentials and authorizes that action.

## Refresh and staleness cues

Refresh this sub-skill if any of these maintainer surfaces change: supported
Python version, Hatch envs or scripts, native test runner semantics, backend
synonyms, `EINOPS_TEST_BACKENDS` parsing, notebook execution script, README docs
conversion, mkdocs configuration, CI matrices, or docs/PyPI deploy workflows.

## Bundled files

- [references/docs-and-tests.md](references/docs-and-tests.md): command matrix,
  backend semantics, docs/notebook workflow, CI notes, and deploy boundaries.
- [references/maintainer-troubleshooting.md](references/maintainer-troubleshooting.md):
  failure diagnosis for backends, environments, docs mutation, notebooks, and
  release credentials.
- [scripts/run_selected_einops_tests.py](scripts/run_selected_einops_tests.py):
  safe dry-run wrapper around native package tests with optional focused pytest
  targets.
- [scripts/convert_readme_for_docs.py](scripts/convert_readme_for_docs.py):
  dry-run-first README-to-docs converter adapted from the repository script.
- [scripts/notebook_execution_check.py](scripts/notebook_execution_check.py):
  dependency checker and optional bounded notebook executor.

Files in this skill

  • SKILL.md7.1 KB
  • references/docs-and-tests.md9.9 KB
  • references/maintainer-troubleshooting.md9.4 KB
  • scripts/convert_readme_for_docs.py2 KB
  • scripts/notebook_execution_check.py3.3 KB
  • scripts/run_selected_einops_tests.py4.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.