Skip to content
Back to skills

Operators Transforms

ASecurity

"Use PennyLane operations, templates, observables, op math,

  • 247 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 8, 2026
testingpythonnodeapi

Works with

  • cli
  • api

Security analysis

A100/100

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

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill operators-transforms --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Operators Transforms?

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

Security grade badge for Operators Transforms
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-operators-transforms/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-operators-transforms)

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: operators-transforms
description: "Use PennyLane operations, templates, observables, op math,
  decompositions, compile pipelines, transforms, and custom-operator
  validation."
metadata:
  disco-role: operating
disable-model-invocation: true
license: Apache 2.0
---

# Operators, templates, and transforms

Use this sub-skill when a task asks which operation/template to use, how to compose observables, how to inspect operator matrices/eigenvalues, how to decompose or compile a circuit, or how to add/validate custom operators.

## Read first

- [`references/api-reference.md`](references/api-reference.md): verified signatures and API groups for operations, templates, op math, and transforms.
- [`references/workflows.md`](references/workflows.md): recipes for operator composition, template shape checks, decomposition/compile, and custom operators.
- [`references/troubleshooting.md`](references/troubleshooting.md): shape, wire, differentiability, decomposition, and custom-operator failures.
- [`scripts/operator_validation.py`](scripts/operator_validation.py): tiny custom operator plus `assert_valid` check.
- [`scripts/decompose_smoke.py`](scripts/decompose_smoke.py): safe decomposition/compile smoke.

## Route within this sub-skill

- **Basic gates and observables:** use top-level gates like `qp.RX`, `qp.RY`, `qp.RZ`, `qp.CNOT`, `qp.Hadamard`, `qp.PauliX/Y/Z`, and measurement observables through circuits/devices.
- **Templates:** use `qp.AngleEmbedding`, `qp.AmplitudeEmbedding`, `qp.StronglyEntanglingLayers`, state-preparation templates, subroutines, and tensor-network templates when a workflow needs reusable ansatz structure.
- **Operator arithmetic:** use `qp.sum`, `qp.prod`, `qp.s_prod`, `qp.pow`, `qp.adjoint`, `qp.ctrl`, `qp.cond`, `qp.exp`, `qp.dot`, `qp.commutator`, and `qp.pauli_decompose` to compose or analyze operators.
- **Inspection:** use `qp.matrix`, `qp.eigvals`, `qp.generator`, `qp.is_unitary`, `qp.is_hermitian`, `qp.is_commuting`, `qp.equal`, `qp.assert_equal`, `qp.simplify`, and `qp.map_wires`.
- **Transforms:** use `qp.transform` for custom tape transforms; use packaged transforms such as `qp.compile`, `qp.decompose`, batching transforms, `qp.defer_measurements`, dynamic-one-shot, Clifford+T decomposition, and pattern matching.
- **Custom operators:** route to the custom-operator workflow and validate with `pennylane.ops.functions.assert_valid(op)`.

## Boundaries

- Device, measurement execution, shots, and drawing are owned by [`../circuits-devices/SKILL.md`](../circuits-devices/SKILL.md).
- Gradient transforms and differentiability choices are owned by [`../gradients-interfaces/SKILL.md`](../gradients-interfaces/SKILL.md).
- Qchem/fermionic/bosonic/spin operator mappings are owned by [`../applications-qchem-resource/SKILL.md`](../applications-qchem-resource/SKILL.md), but the resulting qubit operators can be inspected here.
- Source-code lint/test/contribution policy is owned by [`../repo-development/SKILL.md`](../repo-development/SKILL.md).

## Minimal pattern

```python
import pennylane as qp

op = 0.5 * qp.PauliZ(0) + qp.PauliX(1) @ qp.PauliZ(2)
print(qp.simplify(op))
print(qp.matrix(qp.RX(0.2, wires=0)))

@qp.qnode(qp.device("default.qubit", wires=3))
def circuit(x):
    qp.AngleEmbedding(x, wires=range(3), rotation="Y")
    qp.StronglyEntanglingLayers(qp.numpy.zeros((1, 3, 3)), wires=range(3))
    return qp.expval(op)

print(qp.draw(qp.compile(circuit))(qp.numpy.array([0.1, 0.2, 0.3])))
```

## Verification cues

For a useful answer, include expected parameter shapes, wire conventions, transform level (`user`, `device`, or `gradient`) when drawing/compiling, and a validation step such as `assert_valid`, `qp.matrix`, `qp.draw`, or focused tests for source changes.

Files in this skill

  • SKILL.md3.7 KB
  • references/api-reference.md3.5 KB
  • references/troubleshooting.md2.3 KB
  • references/workflows.md3.2 KB
  • scripts/decompose_smoke.py522 B
  • scripts/operator_validation.py1.4 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.