with one click
scopy-tools-inventory
// Catalog of all Scopy development tools including package generator, testing tools, CI scripts, format/license scripts, and dev plugin commands. Loaded when analyzing what tools exist for a task.
// Catalog of all Scopy development tools including package generator, testing tools, CI scripts, format/license scripts, and dev plugin commands. Loaded when analyzing what tools exist for a task.
Guidelines for using Context7, web search, and other research tools to find solutions outside the Scopy codebase. Loaded when the task involves unfamiliar technology or external libraries.
Core Scopy architecture knowledge including plugin lifecycle, library dependencies, build system, and key design patterns. Loaded by clarify-task and design-task commands.
How Scopy libraries depend on each other, plugin commonalities, MessageBroker topics, shared widgets, style system flow, and build system relationships. Loaded when determining component interactions or change impact.
Decision trees for common Scopy architectural choices - plugin vs core, tool vs section, widget type selection, sync vs async, GNU Radio vs direct, package organization, and API exposure. Loaded when making design decisions.
Code patterns and examples for Scopy IIOWidget unit tests. Covers standard helpers, data-driven testing, and complex multi-step scenarios. Auto-loads when creating or reviewing `*_Unit_test.js` files.
Unit test validation rules for Scopy plugin IIOWidget tests. Auto-loads when reviewing or writing `*_Unit_test.js` files.
| name | scopy-tools-inventory |
| description | Catalog of all Scopy development tools including package generator, testing tools, CI scripts, format/license scripts, and dev plugin commands. Loaded when analyzing what tools exist for a task. |
Location: tools/packagegenerator/
Purpose: Generate complete package/plugin scaffolding from JSON configuration.
Usage:
cd tools/packagegenerator
pip install -r requirements.txt
./package_generator.py --all # Generate complete package
./package_generator.py -p /path/to/plugin.json # Generate plugin only
./package_generator.py --init # Initialize git submodule
./package_generator.py --style # Add style templates
./package_generator.py --translation # Add translation templates
./package_generator.py -a --src /path --dest /path # Archive packages
Input files:
pkg.json ā Package metadata (id, title, description, version, category)plugin.json ā Plugin structure definition with 14 fields:
baseplugin, plugin_name, plugin_display_name, plugin_descriptionclass_name, namespace, device_categorytools[] ā array of {id, tool_name, file_name, class_name, namespace}cmakelists ā {cmake_min_required, cxx_standard, enable_testing}style, test, resources, doc, pdkWhen to use: Creating a brand new package or plugin from scratch. Not for modifying existing plugins.
Location: tools/testing/
python3 setup_test_environment.py v3.0.0 --rbp P0 --new-since v2.5.0
setup_test_environment.py ā Create filtered test environments by version/component/priorityparseTestResults.py ā Generate CSV templates from RST test documentationrst_parser.py ā Parse RST test filesfile_filters.py ā Component and priority filteringLocation: js/testAutomations/
testAutomations/
āāā common/testFramework.js # Base test API
āāā core/ # Core tests
āāā generic-plugins/ # Generic plugin tests (adc/, dac/, etc.)
āāā m2k/ # M2K-specific tests
āāā ad936x/, adrv9002/, ... # Device-specific tests
<plugin>DocTests.js ā Category A: fully automatable tests<plugin>VisualTests.js ā Category B: supervised visual checksmsleep(500) for hardware settleBranch: claude_scopy_dev_plugin (not yet in main)
Purpose: Automated testing with real hardware via JS scripts.
test/ subdirectory with Qt Test-based tests-DENABLE_TESTING=ONcd build && ctest -R <test_name>Location: tools/format.sh
Location: tools/license.sh
/scopy_dev_plugin:check-code-quality <package> ā Static code quality analysis/scopy_dev_plugin:verify-package <package> ā CI pre-flight validation/scopy_dev_plugin:validate-api <plugin> ā Validate API class (checks A1-A7)/scopy_dev_plugin:validate-automated-tests <plugin> ā Validate JS tests (checks T1-T7)/scopy_dev_plugin:create-api <plugin> ā Generate Q_INVOKABLE API class for JS automation/scopy_dev_plugin:create-docs <plugin> ā Generate RST user-guide documentation/scopy_dev_plugin:create-test-docs <plugin> ā Generate RST test case documentation/scopy_dev_plugin:create-automated-tests <plugin> ā Create JS automated test scripts/scopy_dev_plugin:create-whatsnew <plugin> <version> ā Generate What's New HTMLLocation: ci/
Platform-specific build scripts:
ci/ubuntu/ ā Ubuntu/Linux build and packagingci/windows/ ā Windows build with MSVCci/macOS/ ā macOS buildci/arm/ ā ARM cross-compilation (armv7)ci/android/ ā Android buildEach directory contains scripts for dependency installation, build configuration, and packaging.
Location: tools/scopy-mcp-server/
Purpose: External tooling integration via Model Context Protocol.
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo
make -j$(nproc)
# Key flags
-DENABLE_ALL_PACKAGES=ON # All packages
-DENABLE_PACKAGE_<NAME>=ON # Specific package (uppercase)
-DENABLE_TESTING=ON # Unit tests
-DENABLE_AUTOMATED_TESTS=ON # JS automated tests (ctest)
-DSCOPY_DEV_MODE=ON # Dev mode (clears cache on reconfigure)