qgis-core
Guides QGIS development with focus on UI responsiveness, thread management, and layer processing.
Install
mkdir -p .claude/skills/qgis-core && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/14182" && unzip -o skill.zip -d .claude/skills/qgis-core && rm skill.zipInstalls to .claude/skills/qgis-core
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Knowledge about the QGIS API, plugin structure, and asynchronous processing with QgsTask.Key capabilities
- →Separate logic into core and GUI components
- →Validate layer integrity using `isValid()`
- →Wrap long processes in `QgsTask` for asynchrony
- →Explicitly handle coordinate transformations
- →Use signals and slots for communication with `QgsTask`
- →Avoid global use of `iface`
How it works
The skill standardizes interaction with the QGIS API by enforcing architectural patterns like Core/GUI separation and the use of `QgsTask` for long-running operations.
Inputs & outputs
When to use qgis-core
- →Implement a new QGIS tool
- →Handle map layer processing
- →Add asynchronous processing to plugin
About this skill
QGIS Core Development
Standardizes interaction with the QGIS API, ensuring a responsive and well-structured plugin.
When to use this skill
- When implementing new tools that interact with the map canvas.
- When handling vector or raster layers.
- When performing heavy operations that require secondary threads.
Degree of Freedom
- Strict: The use of
QgsTaskfor long processes and Core/GUI decoupling are mandatory.
Workflow
- Architecture: Separate logic into
core/(processing) andgui/(visualization). - Validation: Always verify
isValid()on layers before operating. - Asynchrony: Wrap processes > 0.5s in a
QgsTask. - CRS Management: Explicitly handle coordinate transformations.
Instructions and Rules
Golden Rules
- QgsTask: Do not block the UI. Use signals and slots for communication.
- Network/Threads: Avoid
threading.Thread(useQgsTask) and synchronous network calls (rulesUNSAFE_THREADandBLOCKING_NETWORK_CALL). - Boundaries: Use WKT to communicate core logic with the graphical interface.
- Modernization: Avoid legacy
QVariant; the analyzer will detectOBSOLETE_VARIANT. - Injection: Avoid global use of
iface; prefer passing objects in constructors.
Plugin Structure
core/: Business logic agnostic to the UI.gui/: Widgets and dialogs dependent on PyQGIS.exporters/: Data output modules.
Quality Checklist
- Is UI blocking avoided through
QgsTask? - Is layer integrity validated in every operation?
- Are CRS transformations explicitly defined?
- Is the Core/GUI separation of responsibilities followed?
When not to use it
- →When developing outside of the QGIS API environment
- →When the task does not involve PyQGIS, layers, CRS, or QgsTask
Limitations
- →The skill is specific to the QGIS API and PyQGIS.
- →The skill mandates the use of `QgsTask` for processes longer than 0.5 seconds.
- →The skill prohibits the use of `threading.Thread` and synchronous network calls.
How it compares
This skill provides a structured and standardized approach to QGIS plugin development, ensuring responsiveness and maintainability, unlike an ad-hoc method that might lead to UI blocking or inconsistent code.
Compared to similar skills
qgis-core side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| qgis-core (this skill) | 0 | 5mo | No flags | Intermediate |
| pdf-processing-pro | 17 | 10mo | Review | Intermediate |
| python-repl | 6 | 4mo | Review | Beginner |
| math-router | 6 | 7mo | Review | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by geociencio
View all by geociencio →You might also like
pdf-processing-pro
davila7
Production-ready PDF processing with forms, tables, OCR, validation, and batch operations. Use when working with complex PDF workflows in production environments, processing large volumes of PDFs, or requiring robust error handling and validation.
python-repl
gptme
Interactive Python REPL automation with common helpers and best practices
math-router
parcadei
Deterministic router for math cognitive stack - maps user intent to exact CLI commands
optimizing-gas-fees
jeremylongshore
Optimize blockchain gas costs by analyzing prices, patterns, and timing. Use when checking gas prices, estimating costs, or finding optimal windows. Trigger with phrases like "gas prices", "optimize gas", "transaction cost", "when to transact".
tooluniverse-sdk
mims-harvard
Build AI scientist systems using ToolUniverse Python SDK for scientific research. Use when users need to access 1000++ scientific tools through Python code, create scientific workflows, perform drug discovery, protein analysis, genomics analysis, literature research, or any computational biology task. Triggers include requests to use scientific tools programmatically, build research pipelines, analyze biological data, search literature, predict drug properties, or create AI-powered scientific workflows.
airflow
ComeOnOliver
Apache Airflow lets you define workflows as Directed Acyclic Graphs (DAGs) in Python. Each DAG consists of tasks connected by dependencies, scheduled and monitored via a web UI.