mengps / huskarui
Install for your project team
Run this command in your project directory to install the skill for your entire team:
mkdir -p .claude/skills/huskarui && curl -L -o skill.zip "https://fastmcp.me/Skills/Download/3604" && unzip -o skill.zip -d .claude/skills/huskarui && rm skill.zip
Project Skills
This skill will be saved in .claude/skills/huskarui/ and checked into git. All team members will have access to it automatically.
Important: Please verify the skill by reviewing its instructions before using it.
Expert on HuskarUI components. Queries metadata for documentation and examples. Works with or without Python.
0 views
0 installs
Skill Content
---
name: "HuskarUI"
description: "Expert on HuskarUI components. Queries metadata for documentation and examples. Works with or without Python."
---
# HuskarUI Expert
This skill provides comprehensive knowledge about the HuskarUI library by querying `guide.metainfo.json`. Note that `guide.metainfo.json` and the helper script `query_metainfo.py` are typically located in `ai_tools/HuskarUIExpert/`, but they may also be found in the same directory as this SKILL file.
## Capabilities
1. **Component Lookup**: Get detailed documentation, properties, and code examples.
2. **Search**: Find components by keywords.
3. **Listing**: List all available components.
## Usage Strategy
**CRITICAL**: The metadata file `guide.metainfo.json` is large (~500KB). **DO NOT** try to read the whole file at once.
### Method 1: Python Tool (Preferred)
Use this method if the environment supports Python.
**Lookup/Search:**
```bash
# Note: Adjust paths if the tool files are located elsewhere
python ai_tools/HuskarUIExpert/query_metainfo.py ai_tools/HuskarUIExpert/guide.metainfo.json <ComponentName_or_Keyword>
```
**List All:**
```bash
# Note: Adjust paths if the tool files are located elsewhere
python ai_tools/HuskarUIExpert/query_metainfo.py ai_tools/HuskarUIExpert/guide.metainfo.json list
```
### Method 2: Manual Fallback (No Python)
Use this method if `python` command fails or is not available.
**1. Locate Component:**
Use `grep` to find the line number of the component definition.
```bash
# Note: Adjust paths if guide.metainfo.json is located elsewhere
grep -n "\"name\": \"<ComponentName>\"" ai_tools/HuskarUIExpert/guide.metainfo.json
```
**2. Read Content:**
Use the `Read` tool with `offset` (the line number found above) and `limit` (e.g., 200 lines) to extract the component's JSON object.
*Note: Do not read from line 1 unless necessary.*
**3. Search (Manual):**
```
grep -i "<keyword>" ai_tools/HuskarUIExpert/guide.metainfo.json
```
### Advanced: Source Code Verification
If the documentation in `guide.metainfo.json` is unclear or if you suspect it might be outdated/incomplete:
1. Look for the `"sources"` field in the component's metadata (retrieved via Method 1 or 2).
2. Read the actual source file (e.g., `src/imports/HusAvatar.qml`) using the `Read` tool.
3. Verify properties, signals, and implementation details directly from the code to minimize errors.
## Coding Guidelines
### QML Style Guide
Based on project conventions (e.g., `src/imports/HusAvatar.qml`):
1. **Imports**:
- Order: `QtQuick` -> `QtQuick.*` -> `HuskarUI.Basic`.
- Use `import QtQuick.Templates as T` when inheriting from templates.
2. **Naming**:
- **Components**: PascalCase (e.g., `HusButton`).
- **Properties/Functions**: camelCase (e.g., `iconSource`, `calcBestSize`).
- **Private Members**: Prefix with double underscore (e.g., `__iconImpl`, `__bg`).
- **IDs**: camelCase, descriptive (e.g., `control`, `titleText`).
3. **Formatting**:
- **Indentation**: 4 spaces.
- **Quotes**: Single quotes `'string'` preferred for properties.
- **Braces**: Egyptian style (opening brace on the same line).
4. **Structure**:
- `id` first.
- Property declarations.
- `implicitWidth` / `implicitHeight`.
- Visual properties (font, color).
- Child objects / Components.
5. **Best Practices**:
- **Performance**:
- Use `Loader` for conditional complex sub-components to improve performance.
- Avoid binding loops (circular dependencies in property bindings).
- **JavaScript**:
- Use `let` or `const` instead of `var` to avoid scope hoisting issues.
- Use strict equality `===` and `!==` instead of `==` and `!=`.
- Avoid global variables; encapsulate logic in stateless JavaScript libraries (`.js`/`.mjs` files) imported as stateless modules `.pragma library`.
- Use arrow functions `() => {}` for short callbacks to preserve lexical `this` (if supported by the Qt version).
- Prefer `Qt.binding(function() { ... })` when imperatively assigning bindings.
### C++ Style Guide
Based on `.clang-format`:
- **Style**: LLVM-based.
- **Standard**: C++17 or newer.
- **Indentation**: 4 spaces.
- **Pointer Alignment**: Right (`Type *ptr`).
- **Column Limit**: 100 characters.
- **Access Modifiers**: Indented by -4 spaces (align with class definition).