project-context
Provides an overview of the qgis-plugin-analyzer architecture and static analysis capabilities.
Install
mkdir -p .claude/skills/project-context && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/13846" && unzip -o skill.zip -d .claude/skills/project-context && rm skill.zipInstalls to .claude/skills/project-context
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.
Summary of the purpose, architecture, and structure of the qgis-plugin-analyzer project.Key capabilities
- →Audit Python code for QGIS standards compliance
- →Detect QGIS-specific hazards like blocking loops
- →Generate analysis reports in multiple formats
- →Identify obsolete QGIS APIs
- →Analyze code using Python's AST module
How it works
The tool performs static analysis on Python source code using custom AST visitors to detect QGIS-specific issues and generate reports.
Inputs & outputs
When to use project-context
- →Understand how to add new analysis rules
- →Learn the project directory structure
- →Review QGIS plugin audit standards
About this skill
Project Context: QGIS Plugin Analyzer
Purpose
qgis-plugin-analyzer is a static analysis tool designed for QGIS plugin developers. It audits Python code to ensure compliance with QGIS standards, security best practices, and maintainability metrics.
Key Features
- AST-based Analysis: Custom visitors to detect QGIS-specific hazards (blocking loops, signal leaks).
- Quality Scoring: Combined metrics for Stability and Maintainability.
- Automated Reporting: Generates summaries in Terminal, JSON, Markdown, and HTML.
- Legacy Support: Detects obsolete APIs and GDAL/PyQt import patterns.
Architecture
src/analyzer/cli/: Typer-based command line interface.src/analyzer/visitors/: Core analysis logic using Python'sastmodule.src/analyzer/reporters/: Transformation of raw data into user-facing reports.src/analyzer/engine.py: Orchestrator of the analysis pipeline.src/analyzer/scoring.py: Logic for quality index calculation.
Tech Stack
- Language: Python 3.9+
- Tooling:
uv(Package management),ruff(Linting),pytest(Testing). - Core Libs:
ast(Standard library),jinja2(HTML reports),typer(CLI).
Design Philosophy
- Stateless & Static: No execution of the plugin code; only source analysis.
- Fast & Parallel: Uses process pooling for multi-file analysis.
- Extensible: New rules can be added by implementing a new
BaseVisitor.
When not to use it
- →When analyzing non-Python code
- →When the project is not a QGIS plugin
- →When needing to execute plugin code
Limitations
- →The tool is stateless and static, it does not execute the plugin code.
- →Analysis is limited to Python 3.9+.
How it compares
This tool focuses specifically on QGIS plugin development standards and hazards, providing automated reporting and quality scoring tailored to that ecosystem, unlike a general-purpose linter.
Compared to similar skills
project-context side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| project-context (this skill) | 0 | 3mo | No flags | Beginner |
| embu-data-audit | 0 | 3mo | Review | Intermediate |
| python-testing-patterns | 77 | 2mo | Review | Intermediate |
| deepwiki-rs | 25 | 9mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by geociencio
View all by geociencio →You might also like
embu-data-audit
murzoglu
Audit active EMBU data pipeline decisions in the doktoratezi repository. Use when working on EMBU, EMBU-C, EMBU-P, Likert 4pt/6pt, Stage 1, Stage 2, Stage 3, family matching, outliers, ICC, CFA, mixed Likert families, find_embu_columns, PII removal, or EMBU v2.0 validation.
python-testing-patterns
wshobson
Implement comprehensive testing strategies with pytest, fixtures, mocking, and test-driven development. Use when writing Python tests, setting up test suites, or implementing testing best practices.
deepwiki-rs
sopaco
AI-powered Rust documentation generation engine for comprehensive codebase analysis, C4 architecture diagrams, and automated technical documentation. Use when Claude needs to analyze source code, understand software architecture, generate technical specs, or create professional documentation from any programming language.
jupyter-notebook
davila7
Use when the user asks to create, scaffold, or edit Jupyter notebooks (`.ipynb`) for experiments, explorations, or tutorials; prefer the bundled templates and run the helper script `new_notebook.py` to generate a clean starting notebook.
validate-openapi-specs
epieczko
Validates and registers hook manifest files (YAML) in the Hook Registry for versioned hook management.
python-design-patterns
wshobson
Python design patterns including KISS, Separation of Concerns, Single Responsibility, and composition over inheritance. Use when making architecture decisions, refactoring code structure, or evaluating when abstractions are appropriate.