Skill Tracer
Skills › Scientific Agent Skills › cirq

cirq

skill · 378 lines · Apache-2.0 license · skills/cirq/SKILL.md

The facts

Its description

Google quantum computing framework. Use when targeting Google Quantum AI hardware, designing noise-aware circuits, or running quantum characterization experiments. Best for Google hardware, noise modeling, and low-level circuit design. For IBM hardware use qiskit; for quantum ML with autodiff use pennylane; for physics simulations use qutip.

The description the agent reads to decide when to use it.

From its settingsline 3

Tools it may use, or may not

allowed-tools: Read Write Edit Bash

Tools it may use while it runs without asking you first.

From its settingsline 6

Files it mentions

references/review.md, references/building.md, references/simulation.md, references/transformation.md, references/hardware.md (first 5 of 8 lines)

Files the text names, such as ones to read or write. Found by matching words, so treat them as pointers.

Found by matching wordsline 61 line 120 line 134 line 148 line 161

Licence

Apache-2.0 license, from the skill file

The terms its author shares it under, which let it be shown here.

From its settingsline 4 licence text

Other settings

compatibility: Requires Python 3.11+ and Cirq 1.7.0 for local examples. Cloud execution requires provider credentials, network access, and assigned targets. Azure uses a separate Cirq 1.6.1 environment. metadata: version: "1.3" last-reviewed: "2026-09-30" skill-author: K-Dense Inc.

More settings at the top of the file, shown as written.

From its settingsline 5 line 7
Other files in this skill (7) Close

The text

Open on GitHub

Most marks come from matching words in the file, so treat them as pointers.

1---
2name: cirq
3description: Google quantum computing framework. Use when targeting Google Quantum AI hardware, designing noise-aware circuits, or running quantum characterization experiments. Best for Google hardware, noise modeling, and low-level circuit design. For IBM hardware use qiskit; for quantum ML with autodiff use pennylane; for physics simulations use qutip.
4license: Apache-2.0 license
5compatibility: Requires Python 3.11+ and Cirq 1.7.0 for local examples. Cloud execution requires provider credentials, network access, and assigned targets. Azure uses a separate Cirq 1.6.1 environment.
6allowed-tools: Read Write Edit Bash
7metadata:
8 version: "1.3"
9 last-reviewed: "2026-09-30"
10 skill-author: K-Dense Inc.
11---
13# Cirq - Quantum Computing with Python
15Cirq is Google Quantum AI's open-source framework for designing, simulating, and running quantum circuits on quantum computers and simulators.

Cirq - Quantum Computing with Python

Cirq is Google Quantum AI's open-source framework for designing, simulating, and running quantum circuits on quantum computers and simulators.

Raw lines 1 to 16
17## When to Use This Skill
19Use this skill when:
20- Building, simulating, or optimizing NISQ circuits in Python
21- Running jobs on Google Quantum AI processors (via `cirq-google`) or partner backends (IonQ, Azure Quantum, AQT, Pasqal)
22- Modeling noise, compiling to hardware gatesets, or designing characterization experiments
23- Using parameter sweeps, transformers, or the ReCirq experiment patterns
25For IBM hardware use **qiskit**; for quantum ML with autodiff use **pennylane**; for physics simulations use **qutip**.

When to Use This Skill

Use this skill when:

  • Building, simulating, or optimizing NISQ circuits in Python
  • Running jobs on Google Quantum AI processors (via cirq-google) or partner backends (IonQ, Azure Quantum, AQT, Pasqal)
  • Modeling noise, compiling to hardware gatesets, or designing characterization experiments
  • Using parameter sweeps, transformers, or the ReCirq experiment patterns

For IBM hardware use qiskit; for quantum ML with autodiff use pennylane; for physics simulations use qutip.

Raw lines 17 to 26
27## Installation
29Examples target **Cirq 1.7.0** on Python 3.11+. Keep Cirq vendor packages on the matching release; independently versioned integrations such as Azure Quantum need their own compatibility check.
31```bash
32uv pip install "cirq-core==1.7.0"
33# Optional OpenQASM import dependency
34uv pip install ply
35```
37For hardware integration (pin matching versions for reproducibility):
38```bash
39# Google Quantum Engine (requires approved GCP project access)
40uv pip install "cirq-google==1.7.0"
42# IonQ
43uv pip install "cirq-ionq==1.7.0"
45# AQT (Alpine Quantum Technologies)
46uv pip install "cirq-aqt==1.7.0"
48# Pasqal
49uv pip install "cirq-pasqal==1.7.0"
51# Azure: use a SEPARATE environment; its current extras require Cirq <1.7.
52uv pip install "qdk[azure,cirq]==1.32.3" "azure-quantum==3.13.0"
53```
55Pin all `cirq-*` packages in an environment to the same release. The Azure
56example targets its supported Cirq 1.6.1 stack separately; do not force Cirq 1.7.0
57into it. Cirq 1.7.0 updates the IonQ adapter to API v0.4.
59Local examples were checked with synthetic circuits. Hardware examples are
60illustrative and were checked against released source and provider documentation,
61without submitting cloud jobs. See [review evidence](references/review.md).

Installation

Examples target Cirq 1.7.0 on Python 3.11+. Keep Cirq vendor packages on the matching release; independently versioned integrations such as Azure Quantum need their own compatibility check.

uv pip install "cirq-core==1.7.0"
# Optional OpenQASM import dependency
uv pip install ply

For hardware integration (pin matching versions for reproducibility):

# Google Quantum Engine (requires approved GCP project access)
uv pip install "cirq-google==1.7.0"

# IonQ
uv pip install "cirq-ionq==1.7.0"

# AQT (Alpine Quantum Technologies)
uv pip install "cirq-aqt==1.7.0"

# Pasqal
uv pip install "cirq-pasqal==1.7.0"

# Azure: use a SEPARATE environment; its current extras require Cirq <1.7.
uv pip install "qdk[azure,cirq]==1.32.3" "azure-quantum==3.13.0"

Pin all cirq-* packages in an environment to the same release. The Azure example targets its supported Cirq 1.6.1 stack separately; do not force Cirq 1.7.0 into it. Cirq 1.7.0 updates the IonQ adapter to API v0.4.

Local examples were checked with synthetic circuits. Hardware examples are illustrative and were checked against released source and provider documentation, without submitting cloud jobs. See review evidence.

Raw lines 27 to 62
Reads a file references/review.md :61
63## Quick Start
65### Basic Circuit
67```python
68import cirq
69import numpy as np
71# Create qubits
72q0, q1 = cirq.LineQubit.range(2)
74# Build circuit
75circuit = cirq.Circuit(
76 cirq.H(q0), # Hadamard on q0
77 cirq.CNOT(q0, q1), # CNOT with q0 control, q1 target
78 cirq.measure(q0, q1, key='result')
81print(circuit)
83# Simulate
84simulator = cirq.Simulator(seed=42)
85result = simulator.run(circuit, repetitions=1000)
87# Display results
88print(result.histogram(key='result'))
89```

Basic Circuit

import cirq
import numpy as np

# Create qubits
q0, q1 = cirq.LineQubit.range(2)

# Build circuit
circuit = cirq.Circuit(
    cirq.H(q0),              # Hadamard on q0
    cirq.CNOT(q0, q1),       # CNOT with q0 control, q1 target
    cirq.measure(q0, q1, key='result')
)

print(circuit)

# Simulate
simulator = cirq.Simulator(seed=42)
result = simulator.run(circuit, repetitions=1000)

# Display results
print(result.histogram(key='result'))
Raw lines 65 to 90
91### Parameterized Circuit
93```python
94import sympy
96# Define symbolic parameter
97theta = sympy.Symbol('theta')
99# Create parameterized circuit
100circuit = cirq.Circuit(
101 cirq.ry(theta)(q0),
102 cirq.measure(q0, key='m')
105# Sweep over parameter values
106sweep = cirq.Linspace('theta', start=0, stop=2*np.pi, length=20)
107results = simulator.run_sweep(circuit, params=sweep, repetitions=1000)
109# Process results
110for params, result in zip(sweep, results):
111 theta_val = params['theta']
112 counts = result.histogram(key='m')
113 print(f"θ={theta_val:.2f}: {counts}")
114```

Parameterized Circuit

import sympy

# Define symbolic parameter
theta = sympy.Symbol('theta')

# Create parameterized circuit
circuit = cirq.Circuit(
    cirq.ry(theta)(q0),
    cirq.measure(q0, key='m')
)

# Sweep over parameter values
sweep = cirq.Linspace('theta', start=0, stop=2*np.pi, length=20)
results = simulator.run_sweep(circuit, params=sweep, repetitions=1000)

# Process results
for params, result in zip(sweep, results):
    theta_val = params['theta']
    counts = result.histogram(key='m')
    print(f"θ={theta_val:.2f}: {counts}")
Raw lines 91 to 115
116## Core Capabilities

Core Capabilities

Raw lines 116 to 117
118### Circuit Building
119For comprehensive information about building quantum circuits, including qubits, gates, operations, custom gates, and circuit patterns, see:
120- **[references/building.md](references/building.md)** - Complete guide to circuit construction
122Common topics:
123- Qubit types (GridQubit, LineQubit, NamedQubit)
124- Single and two-qubit gates
125- Parameterized gates and operations
126- Custom gate decomposition
127- Circuit organization with moments
128- Standard circuit patterns (Bell states, GHZ, QFT)
129- Import/export (OpenQASM, JSON)
130- Working with qudits and observables

Circuit Building

For comprehensive information about building quantum circuits, including qubits, gates, operations, custom gates, and circuit patterns, see:

  • references/building.md - Complete guide to circuit construction

Common topics:

  • Qubit types (GridQubit, LineQubit, NamedQubit)
  • Single and two-qubit gates
  • Parameterized gates and operations
  • Custom gate decomposition
  • Circuit organization with moments
  • Standard circuit patterns (Bell states, GHZ, QFT)
  • Import/export (OpenQASM, JSON)
  • Working with qudits and observables
Raw lines 118 to 131
Reads a file references/building.md :120
132### Simulation
133For detailed information about simulating quantum circuits, including exact simulation, noisy simulation, parameter sweeps, and the Quantum Virtual Machine, see:
134- **[references/simulation.md](references/simulation.md)** - Complete guide to quantum simulation
136Common topics:
137- Exact simulation (state vector, density matrix)
138- Sampling and measurements
139- Parameter sweeps (single and multiple parameters)
140- Noisy simulation
141- State histograms and visualization
142- Quantum Virtual Machine (QVM)
143- Expectation values and observables
144- Performance optimization

Simulation

For detailed information about simulating quantum circuits, including exact simulation, noisy simulation, parameter sweeps, and the Quantum Virtual Machine, see:

  • references/simulation.md - Complete guide to quantum simulation

Common topics:

  • Exact simulation (state vector, density matrix)
  • Sampling and measurements
  • Parameter sweeps (single and multiple parameters)
  • Noisy simulation
  • State histograms and visualization
  • Quantum Virtual Machine (QVM)
  • Expectation values and observables
  • Performance optimization
Raw lines 132 to 145
Reads a file references/simulation.md :134
146### Circuit Transformation
147For information about optimizing, compiling, and manipulating quantum circuits, see:
148- **[references/transformation.md](references/transformation.md)** - Complete guide to circuit transformations
150Common topics:
151- Transformer framework
152- Gate decomposition
153- Circuit optimization (merge gates, eject Z gates, drop negligible operations)
154- Circuit compilation for hardware
155- Qubit routing and SWAP insertion
156- Custom transformers
157- Transformation pipelines

Circuit Transformation

For information about optimizing, compiling, and manipulating quantum circuits, see:

  • references/transformation.md - Complete guide to circuit transformations

Common topics:

  • Transformer framework
  • Gate decomposition
  • Circuit optimization (merge gates, eject Z gates, drop negligible operations)
  • Circuit compilation for hardware
  • Qubit routing and SWAP insertion
  • Custom transformers
  • Transformation pipelines
Raw lines 146 to 158
159### Hardware Integration
160For information about running circuits on real quantum hardware from various providers, see:
161- **[references/hardware.md](references/hardware.md)** - Complete guide to hardware integration
163Supported providers:
164- **Google Quantum AI** (`cirq-google`) — assigned processors via Quantum Engine; discover IDs from your approved project. Bundled virtual processor names are not proof of live access.
165- **IonQ** (`cirq-ionq`) — trapped-ion QPUs and simulators
166- **Azure Quantum** (`qdk[azure,cirq]`) — discover Cirq-compatible targets in your workspace, in its separate supported environment
167- **AQT** (`cirq-aqt`) — Alpine Quantum Technologies
168- **Pasqal** (`cirq-pasqal`) — local device modeling; the legacy remote sampler is not a verified current Pasqal Cloud integration
170Topics include device representation, qubit selection, authentication, job management, and circuit optimization for hardware. See [Access and authentication](https://quantumai.google/cirq/google/access) for Google Cloud setup.

Hardware Integration

For information about running circuits on real quantum hardware from various providers, see:

  • references/hardware.md - Complete guide to hardware integration

Supported providers:

  • Google Quantum AI (cirq-google) — assigned processors via Quantum Engine; discover IDs from your approved project. Bundled virtual processor names are not proof of live access.
  • IonQ (cirq-ionq) — trapped-ion QPUs and simulators
  • Azure Quantum (qdk[azure,cirq]) — discover Cirq-compatible targets in your workspace, in its separate supported environment
  • AQT (cirq-aqt) — Alpine Quantum Technologies
  • Pasqal (cirq-pasqal) — local device modeling; the legacy remote sampler is not a verified current Pasqal Cloud integration

Topics include device representation, qubit selection, authentication, job management, and circuit optimization for hardware. See Access and authentication for Google Cloud setup.

Raw lines 159 to 171
Reads a file references/hardware.md :161
172### Noise Modeling
173For information about modeling noise, noisy simulation, characterization, and error mitigation, see:
174- **[references/noise.md](references/noise.md)** - Complete guide to noise modeling
176Common topics:
177- Noise channels (depolarizing, amplitude damping, phase damping)
178- Noise models (constant, gate-specific, qubit-specific, thermal)
179- Adding noise to circuits
180- Readout noise
181- Noise characterization (randomized benchmarking, XEB)
182- Noise visualization (heatmaps)
183- Error mitigation techniques

Noise Modeling

For information about modeling noise, noisy simulation, characterization, and error mitigation, see:

  • references/noise.md - Complete guide to noise modeling

Common topics:

  • Noise channels (depolarizing, amplitude damping, phase damping)
  • Noise models (constant, gate-specific, qubit-specific, thermal)
  • Adding noise to circuits
  • Readout noise
  • Noise characterization (randomized benchmarking, XEB)
  • Noise visualization (heatmaps)
  • Error mitigation techniques
Raw lines 172 to 184
Reads a file references/noise.md :174
185### Quantum Experiments
186For information about designing experiments, parameter sweeps, data collection, and using the ReCirq framework, see:
187- **[references/experiments.md](references/experiments.md)** - Complete guide to quantum experiments
189Common topics:
190- Experiment design patterns
191- Parameter sweeps and data collection
192- ReCirq framework structure
193- Common algorithms (VQE, QAOA, QPE)
194- Data analysis and visualization
195- Statistical analysis and fidelity estimation
196- Parallel data collection

Quantum Experiments

For information about designing experiments, parameter sweeps, data collection, and using the ReCirq framework, see:

  • references/experiments.md - Complete guide to quantum experiments

Common topics:

  • Experiment design patterns
  • Parameter sweeps and data collection
  • ReCirq framework structure
  • Common algorithms (VQE, QAOA, QPE)
  • Data analysis and visualization
  • Statistical analysis and fidelity estimation
  • Parallel data collection
Raw lines 185 to 197
Reads a file references/experiments.md :187
198## Common Patterns

Common Patterns

Raw lines 198 to 199
200### Variational Algorithm Template
202```python
203import scipy.optimize
205def variational_algorithm(ansatz, cost_function, initial_params):
206 """Template for variational quantum algorithms."""
208 def objective(params):
209 circuit = ansatz(params)
210 simulator = cirq.Simulator()
211 result = simulator.simulate(circuit)
212 return cost_function(result)
214 # Optimize
215 result = scipy.optimize.minimize(
216 objective,
217 initial_params,
218 method='COBYLA'
219 )
221 return result
223# Define ansatz
224def my_ansatz(params):
225 q = cirq.LineQubit(0)
226 return cirq.Circuit(
227 cirq.ry(params[0])(q),
228 cirq.rz(params[1])(q)
229 )
231# Define cost function
232def my_cost(result):
233 state = result.final_state_vector
234 # Single-qubit Pauli-Z expectation; invariant to global phase.
235 return float(abs(state[0])**2 - abs(state[1])**2)
237# Run optimization
238result = variational_algorithm(my_ansatz, my_cost, [0.0, 0.0])
239```

Variational Algorithm Template

import scipy.optimize

def variational_algorithm(ansatz, cost_function, initial_params):
    """Template for variational quantum algorithms."""

    def objective(params):
        circuit = ansatz(params)
        simulator = cirq.Simulator()
        result = simulator.simulate(circuit)
        return cost_function(result)

    # Optimize
    result = scipy.optimize.minimize(
        objective,
        initial_params,
        method='COBYLA'
    )

    return result

# Define ansatz
def my_ansatz(params):
    q = cirq.LineQubit(0)
    return cirq.Circuit(
        cirq.ry(params[0])(q),
        cirq.rz(params[1])(q)
    )

# Define cost function
def my_cost(result):
    state = result.final_state_vector
    # Single-qubit Pauli-Z expectation; invariant to global phase.
    return float(abs(state[0])**2 - abs(state[1])**2)

# Run optimization
result = variational_algorithm(my_ansatz, my_cost, [0.0, 0.0])
Raw lines 200 to 240
241### Hardware Execution Template
243Illustrative: requires provider credentials, assigned processor IDs, and current
244provider target names. The local simulation examples do not validate QPU access.
246```python
247import cirq
249def run_on_hardware(circuit, sampler, device, repetitions=1000):
250 """Submit an already routed/compiled circuit to an explicitly chosen sampler."""
251 device.validate_circuit(circuit)
252 return sampler.run(circuit, repetitions=repetitions)
253```
255Configure a provider-specific sampler using [hardware.md](references/hardware.md).
256Select the target explicitly; compilation does not itself route disconnected
257qubits or guarantee hardware access.

Hardware Execution Template

Illustrative: requires provider credentials, assigned processor IDs, and current provider target names. The local simulation examples do not validate QPU access.

import cirq

def run_on_hardware(circuit, sampler, device, repetitions=1000):
    """Submit an already routed/compiled circuit to an explicitly chosen sampler."""
    device.validate_circuit(circuit)
    return sampler.run(circuit, repetitions=repetitions)

Configure a provider-specific sampler using hardware.md. Select the target explicitly; compilation does not itself route disconnected qubits or guarantee hardware access.

Raw lines 241 to 258
Reads a file references/hardware.md :255
259### Noise Study Template
261```python
262def noise_comparison_study(circuit, noise_levels):
263 """Compare circuit performance at different noise levels."""
265 results = {}
267 for noise_level in noise_levels:
268 # Create noisy circuit
269 noisy_circuit = circuit.with_noise(cirq.depolarize(p=noise_level))
271 # Simulate
272 simulator = cirq.DensityMatrixSimulator()
273 result = simulator.run(noisy_circuit, repetitions=1000)
275 # Analyze
276 results[noise_level] = {
277 'histogram': result.histogram(key='result'),
278 'dominant_state': max(
279 result.histogram(key='result').items(),
280 key=lambda x: x[1]
281 )
282 }
284 return results
286# Run study on a Bell circuit with the measurement key expected above.
287q0, q1 = cirq.LineQubit.range(2)
288circuit = cirq.Circuit(cirq.H(q0), cirq.CNOT(q0, q1),
289 cirq.measure(q0, q1, key="result"))
290noise_levels = [0.0, 0.001, 0.01, 0.05, 0.1]
291results = noise_comparison_study(circuit, noise_levels)
292```

Noise Study Template

def noise_comparison_study(circuit, noise_levels):
    """Compare circuit performance at different noise levels."""

    results = {}

    for noise_level in noise_levels:
        # Create noisy circuit
        noisy_circuit = circuit.with_noise(cirq.depolarize(p=noise_level))

        # Simulate
        simulator = cirq.DensityMatrixSimulator()
        result = simulator.run(noisy_circuit, repetitions=1000)

        # Analyze
        results[noise_level] = {
            'histogram': result.histogram(key='result'),
            'dominant_state': max(
                result.histogram(key='result').items(),
                key=lambda x: x[1]
            )
        }

    return results

# Run study on a Bell circuit with the measurement key expected above.
q0, q1 = cirq.LineQubit.range(2)
circuit = cirq.Circuit(cirq.H(q0), cirq.CNOT(q0, q1),
                       cirq.measure(q0, q1, key="result"))
noise_levels = [0.0, 0.001, 0.01, 0.05, 0.1]
results = noise_comparison_study(circuit, noise_levels)
Raw lines 259 to 293
294## Best Practices
2961. **Circuit Design**
297 - Use appropriate qubit types for your topology
298 - Keep circuits modular and reusable
299 - Label measurements with descriptive keys
300 - Validate circuits against device constraints before execution
3022. **Simulation**
303 - Use state vector simulation for pure states (more efficient)
304 - Use density matrix simulation only when needed (mixed states, noise)
305 - Leverage parameter sweeps instead of individual runs
306 - Monitor memory usage for large systems (2^n grows quickly)
3083. **Hardware Execution**
309 - Always test on simulators first
310 - Select best qubits using calibration data
311 - Optimize circuits for target hardware gateset
312 - Validate any mitigation against held-out calibration and uncertainty
313 - Store expensive hardware results immediately
3154. **Circuit Optimization**
316 - Start with high-level built-in transformers
317 - Chain multiple optimizations in sequence
318 - Track depth and gate count reduction
319 - Validate correctness after transformation
3215. **Noise Modeling**
322 - Use realistic noise models from calibration data
323 - State which gate, idle, decoherence, and readout effects the model includes
324 - Characterize before mitigating
325 - Keep circuits shallow to minimize noise accumulation
3276. **Experiments**
328 - Structure experiments with clear separation (data generation, collection, analysis)
329 - Use ReCirq patterns for reproducibility
330 - Save intermediate results frequently
331 - Parallelize independent tasks
332 - Document thoroughly with metadata

Best Practices

  1. Circuit Design
  2. Use appropriate qubit types for your topology
  3. Keep circuits modular and reusable
  4. Label measurements with descriptive keys
  5. Validate circuits against device constraints before execution
  1. Simulation
  2. Use state vector simulation for pure states (more efficient)
  3. Use density matrix simulation only when needed (mixed states, noise)
  4. Leverage parameter sweeps instead of individual runs
  5. Monitor memory usage for large systems (2^n grows quickly)
  1. Hardware Execution
  2. Always test on simulators first
  3. Select best qubits using calibration data
  4. Optimize circuits for target hardware gateset
  5. Validate any mitigation against held-out calibration and uncertainty
  6. Store expensive hardware results immediately
  1. Circuit Optimization
  2. Start with high-level built-in transformers
  3. Chain multiple optimizations in sequence
  4. Track depth and gate count reduction
  5. Validate correctness after transformation
  1. Noise Modeling
  2. Use realistic noise models from calibration data
  3. State which gate, idle, decoherence, and readout effects the model includes
  4. Characterize before mitigating
  5. Keep circuits shallow to minimize noise accumulation
  1. Experiments
  2. Structure experiments with clear separation (data generation, collection, analysis)
  3. Use ReCirq patterns for reproducibility
  4. Save intermediate results frequently
  5. Parallelize independent tasks
  6. Document thoroughly with metadata
Raw lines 294 to 333
334## Additional Resources
336- **Official Documentation**: https://quantumai.google/cirq
337- **API Reference**: https://quantumai.google/reference/python/cirq
338- **Tutorials**: https://quantumai.google/cirq/tutorials
339- **Examples**: https://github.com/quantumlib/Cirq/tree/main/examples
340- **Version policy**: https://quantumai.google/cirq/dev/versions
341- **ReCirq**: https://github.com/quantumlib/ReCirq

Additional Resources

  • Official Documentation: https://quantumai.google/cirq
  • API Reference: https://quantumai.google/reference/python/cirq
  • Tutorials: https://quantumai.google/cirq/tutorials
  • Examples: https://github.com/quantumlib/Cirq/tree/main/examples
  • Version policy: https://quantumai.google/cirq/dev/versions
  • ReCirq: https://github.com/quantumlib/ReCirq
Raw lines 334 to 342
343## Common Issues
345**Circuit too deep for hardware:**
346- Use circuit optimization transformers to reduce depth
347- See `transformation.md` for optimization techniques
349**Memory issues with simulation:**
350- For suitable channels, use state-vector trajectories and average enough independent runs; a single trajectory is not the mixed-state density matrix
351- Reduce number of qubits or use stabilizer simulator for Clifford circuits
353**Device validation errors:**
354- Check qubit connectivity with device.metadata.nx_graph
355- Decompose gates to device-native gateset
356- See `hardware.md` for device-specific compilation
358**Noisy simulation too slow:**
359- Density matrix simulation is O(2^2n) - consider reducing qubits
360- Use noise models selectively on critical operations only
361- See `simulation.md` for performance optimization

Common Issues

Circuit too deep for hardware:

  • Use circuit optimization transformers to reduce depth
  • See transformation.md for optimization techniques

Memory issues with simulation:

  • For suitable channels, use state-vector trajectories and average enough independent runs; a single trajectory is not the mixed-state density matrix
  • Reduce number of qubits or use stabilizer simulator for Clifford circuits

Device validation errors:

  • Check qubit connectivity with device.metadata.nx_graph
  • Decompose gates to device-native gateset
  • See hardware.md for device-specific compilation

Noisy simulation too slow:

  • Density matrix simulation is O(2^2n) - consider reducing qubits
  • Use noise models selectively on critical operations only
  • See simulation.md for performance optimization
Raw lines 343 to 362
Boilerplate, lines 363 to 378. The same text appears in 125 other files here. Close
363## Citing Scientific Agent Skills
365This skill is part of Scientific Agent Skills by K-Dense. If it materially contributed to a
366manuscript, report, presentation, or code release, add the paper to the references or
367software section and tell the user you did so:
369> Kassis, T., Agarwal, V., He, Y., Patel, D., & Brueckner, A. M. (2026). Scientific Agent
370> Skills: A Library of Procedural Knowledge for Research Agents. arXiv:2609.00065.
371> https://doi.org/10.48550/arXiv.2609.00065
373Always cite the current version. The DOI and https://arxiv.org/abs/2609.00065 resolve to the
374latest arXiv version, so never append a version suffix such as `v1`. When network access is
375available, fetch https://arxiv.org/abs/2609.00065 (or
376http://export.arxiv.org/api/query?id_list=2609.00065) before writing the reference and take
377the author list, year, and version from that record. If the record lists a journal reference
378or publisher DOI, cite the published version instead.

From K-Dense-AI/scientific-agent-skills at 5f2bc03, 2026-10-26. Not read by a model yet. Summary and techniques by Claude Opus 5.5 on 2026-11-06.