Add detailed file index and enhance skill documentation for autopilot, decompose, deploy, plan, and research skills. Introduce tests-only mode in decompose skill, clarify required files for deploy and plan skills, and improve prerequisite checks across skills for better user guidance and workflow efficiency.

This commit is contained in:
Oleksandr Bezdieniezhnykh
2026-03-22 16:15:49 +02:00
parent 60ebe686ff
commit 3165a88f0b
60 changed files with 6324 additions and 1550 deletions
+69
View File
@@ -0,0 +1,69 @@
# Module: ai_config
## Purpose
Data class holding all AI recognition configuration parameters, with factory methods for deserialization from msgpack and dict formats.
## Public Interface
### Class: AIRecognitionConfig
#### Fields
| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `frame_period_recognition` | int | 4 | Process every Nth frame in video |
| `frame_recognition_seconds` | double | 2.0 | Minimum seconds between valid video annotations |
| `probability_threshold` | double | 0.25 | Minimum detection confidence |
| `tracking_distance_confidence` | double | 0.0 | Distance threshold for tracking (model-width units) |
| `tracking_probability_increase` | double | 0.0 | Required confidence increase for tracking update |
| `tracking_intersection_threshold` | double | 0.6 | IoU threshold for overlapping detection removal |
| `file_data` | bytes | `b''` | Raw file data (msgpack use) |
| `paths` | list[str] | `[]` | Media file paths to process |
| `model_batch_size` | int | 1 | Batch size for inference |
| `big_image_tile_overlap_percent` | int | 20 | Tile overlap percentage for large image splitting |
| `altitude` | double | 400 | Camera altitude in meters |
| `focal_length` | double | 24 | Camera focal length in mm |
| `sensor_width` | double | 23.5 | Camera sensor width in mm |
#### Methods
| Method | Signature | Description |
|--------|-----------|-------------|
| `from_msgpack` | `(bytes data) -> AIRecognitionConfig` | Static cdef; deserializes from msgpack binary |
| `from_dict` | `(dict data) -> AIRecognitionConfig` | Static def; deserializes from Python dict |
## Internal Logic
Both factory methods apply defaults for missing keys. `from_msgpack` uses compact single-character keys (`f_pr`, `pt`, `t_dc`, etc.) while `from_dict` uses full descriptive keys.
**Legacy/unused**: `from_msgpack()` is defined but never called in the current codebase — it is a remnant of a previous queue-based architecture. Only `from_dict()` is actively used. The `file_data` field is stored but never read anywhere.
## Dependencies
- **External**: `msgpack`
- **Internal**: none (leaf module)
## Consumers
- `inference` — creates config from dict, uses all fields for frame selection, detection filtering, image tiling, and tracking
## Data Models
- `AIRecognitionConfig` — the sole data class
## Configuration
Camera/altitude parameters (`altitude`, `focal_length`, `sensor_width`) are used for ground sampling distance calculation in aerial image processing.
## External Integrations
None.
## Security
None.
## Tests
None found.