QDK programming guide for Q#, OpenQASM, and the qsharp/qdk Python API. Use when: writing or editing Q# or OpenQASM code, running quantum programs, resource estimation, circuit generation, noisy simulation, Azure Quantum submission, Qiskit/Cirq/PennyLane interop, or Q# testing and standard library usage.
npx skills add https://github.com/microsoft/qdk --skill qdk-programming
Quantum programming with the Microsoft Quantum Development Kit (QDK).
Most QDK features work in two modes:
.qs / .qasm files directly. No Python required.qsharp/qdk Python packages as a driver for Q#/OpenQASM programs.Default to tool mode unless the user is already working in Python or the feature is Python-only.
| File | Content |
| ---------------------------- | ----------------------------------------------------------------------------------------------- |
| qsharp.md | Q# language syntax, types, quantum operations, standard library, project structure |
| openqasm.md | OpenQASM 2.0/3.0 syntax, standard gates, version differences |
| python.md | qsharp/qdk Python API for execution, estimation, circuits, noise, Azure, Qiskit/Cirq, setup |
| Feature | Tool mode | Python mode |
| ---------------------------------------- | --------------------------------- | ---------------------------------------------- |
| Writing Q# code | Read qsharp.md | Read qsharp.md |
| Writing OpenQASM code | Read openqasm.md | Read openqasm.md |
| Running a program | qdkRunProgram | python.md — Running Q# Code |
| Resource estimation | qdkRunResourceEstimator | python.md — Resource Estimation |
| Circuit diagrams | qdkGenerateCircuit | python.md — Circuit Generation |
| Azure Quantum | Use the azureQuantum* tools | python.md — Azure Quantum |
| Noisy simulation | — (Python only) | python.md — Noisy Simulation |
| Q#/OpenQASM in Python and/or Jupyter | — (inherently Python) | python.md |
| Qiskit / Cirq / PennyLane interop | — (inherently Python) | python.md — Framework Interop |
Quantum Katas
Quantum Katas are a collection of self-paced tutorials built into the QDK that teach quantum computing from the ground up. If the user wants to learn through the Quantum Katas, encourage them to use the /qdk-learning prompt to chat with the QDK Learning agent, which provides a guided, chat-embedded experience.
dotnet CLI tools.Automatically creates user-facing changelogs from git commits by analyzing commit history, categorizing changes, and transforming technical commits into clear, customer-friendly release notes. Turns hours of manual changelog writing into minutes of automated generation.
Use when the user asks to run Codex CLI (codex exec, codex resume) or references OpenAI Codex for code analysis, refactoring, or automated editing. Uses GPT-5.2 by default for state-of-the-art software engineering.
Implement memory-safe programming with RAII, ownership, smart pointers, and resource management across Rust, C++, and C. Use when writing safe systems code, managing resources, or preventing memory bugs.
Python/HTSlib workflows for genomic files. Use when reading, querying, filtering, or writing SAM/BAM/CRAM, VCF/BCF, FASTA/FASTQ, or tabix data with pysam, including pileup, coverage, indexing, and CRAM references.
Evaluate scientific claims and evidence quality. Use for assessing experimental design validity, identifying biases and confounders, applying evidence grading frameworks (GRADE, Cochrane Risk of Bias), or teaching critical analysis. Best for understanding evidence quality, identifying flaws. For formal peer review writing use peer-review.
Use when a user asks to debug or fix failing GitHub PR checks that run in GitHub Actions; use `gh` to inspect checks and logs, summarize failure context, draft a fix plan, and implement only after explicit approval. Treat external providers (for example Buildkite) as out of scope and report only the details URL.
Documentation generation workflow covering API docs, architecture docs, README files, code comments, and technical writing.
Use when the user wants to translate a repository README, make a repo multilingual, localize docs, add a language switcher, internationalize the README, or update localized README variants in a GitHub-style repository.
Take microsoft/qdk-programming from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.