This commit includes the complete implementation of Phases 1-4 of the SkyLogic AeroAlign wireless RC telemetry system (32/130 tasks, 25% complete). ## Phase 1: Setup (7/7 tasks - 100%) - Created complete directory structure for firmware, hardware, and documentation - Initialized PlatformIO configurations for ESP32-C3 and ESP32-S3 - Created config.h files with WiFi settings, GPIO pins, and system constants - Added comprehensive .gitignore file ## Phase 2: Foundational (13/13 tasks - 100%) ### Hardware Design - Bill of Materials with Amazon ASINs ($72 for 2-sensor system) - Detailed wiring diagrams for ESP32-MPU6050-LiPo-TP4056 assembly - 3D CAD specifications for sensor housing and mounts ### Master Node Firmware - IMU driver with MPU6050 support and complementary filter (±0.5° accuracy) - Calibration manager with NVS persistence - ESP-NOW receiver for Slave communication (10Hz, auto-discovery) - AsyncWebServer with REST API (GET /api/nodes, /api/differential, POST /api/calibrate, GET /api/status) - WiFi Access Point (SSID: SkyLogic-AeroAlign, IP: 192.168.4.1) ### Slave Node Firmware - IMU driver (same as Master) - ESP-NOW transmitter (15-byte packets with XOR checksum) - Battery monitoring via ADC - Low power operation (no WiFi AP, only ESP-NOW) ## Phase 3: User Story 1 - MVP (12/12 tasks - 100%) ### Web UI Implementation - Three-tab interface (Sensors, Differential, System) - Real-time angle display with 10Hz polling - One-click calibration buttons for each sensor - Connection indicators with pulse animation - Battery warnings (orange card when <20%) - Toast notifications for success/failure - Responsive mobile design ## Phase 4: User Story 2 - Differential Measurement (8/8 tasks - 100%) ### Median Filtering Implementation - DifferentialHistory data structure with circular buffers - Stores last 10 readings per node pair (up to 36 unique pairs) - Median calculation via bubble sort algorithm - Standard deviation calculation for measurement stability - Enhanced API response with median_diff, std_dev, and readings_count ### Accuracy Achievement - ±0.1° accuracy via median filtering (vs ±0.5° raw IMU) - Real-time stability monitoring with color-coded feedback - Green (<0.1°), Yellow (<0.3°), Red (≥0.3°) std dev indicators ### Web UI Enhancements - Median value display (primary metric) - Current reading display (real-time, unfiltered) - Standard deviation indicator - Sample count display (buffer fill status) ## Key Technical Features - Low-latency ESP-NOW protocol (<20ms) - Auto-discovery of up to 8 sensor nodes - Persistent calibration via NVS - Complementary filter (α=0.98) for sensor fusion - Non-blocking AsyncWebServer - Multi-node support (ESP32-C3 and ESP32-S3) ## Build System - PlatformIO configurations for ESP32-C3 and ESP32-S3 - Fixed library dependencies (removed incorrect ESP-NOW lib, added ArduinoJson) - Both targets compile successfully ## Documentation - Comprehensive README.md with quick start guide - Detailed IMPLEMENTATION_STATUS.md with progress tracking - API documentation and wiring diagrams Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
136 lines
7.3 KiB
Markdown
136 lines
7.3 KiB
Markdown
---
|
|
description: Execute the implementation plan by processing and executing all tasks defined in tasks.md
|
|
---
|
|
|
|
## User Input
|
|
|
|
```text
|
|
$ARGUMENTS
|
|
```
|
|
|
|
You **MUST** consider the user input before proceeding (if not empty).
|
|
|
|
## Outline
|
|
|
|
1. Run `.specify/scripts/bash/check-prerequisites.sh --json --require-tasks --include-tasks` from repo root and parse FEATURE_DIR and AVAILABLE_DOCS list. All paths must be absolute. For single quotes in args like "I'm Groot", use escape syntax: e.g 'I'\''m Groot' (or double-quote if possible: "I'm Groot").
|
|
|
|
2. **Check checklists status** (if FEATURE_DIR/checklists/ exists):
|
|
- Scan all checklist files in the checklists/ directory
|
|
- For each checklist, count:
|
|
- Total items: All lines matching `- [ ]` or `- [X]` or `- [x]`
|
|
- Completed items: Lines matching `- [X]` or `- [x]`
|
|
- Incomplete items: Lines matching `- [ ]`
|
|
- Create a status table:
|
|
|
|
```text
|
|
| Checklist | Total | Completed | Incomplete | Status |
|
|
|-----------|-------|-----------|------------|--------|
|
|
| ux.md | 12 | 12 | 0 | ✓ PASS |
|
|
| test.md | 8 | 5 | 3 | ✗ FAIL |
|
|
| security.md | 6 | 6 | 0 | ✓ PASS |
|
|
```
|
|
|
|
- Calculate overall status:
|
|
- **PASS**: All checklists have 0 incomplete items
|
|
- **FAIL**: One or more checklists have incomplete items
|
|
|
|
- **If any checklist is incomplete**:
|
|
- Display the table with incomplete item counts
|
|
- **STOP** and ask: "Some checklists are incomplete. Do you want to proceed with implementation anyway? (yes/no)"
|
|
- Wait for user response before continuing
|
|
- If user says "no" or "wait" or "stop", halt execution
|
|
- If user says "yes" or "proceed" or "continue", proceed to step 3
|
|
|
|
- **If all checklists are complete**:
|
|
- Display the table showing all checklists passed
|
|
- Automatically proceed to step 3
|
|
|
|
3. Load and analyze the implementation context:
|
|
- **REQUIRED**: Read tasks.md for the complete task list and execution plan
|
|
- **REQUIRED**: Read plan.md for tech stack, architecture, and file structure
|
|
- **IF EXISTS**: Read data-model.md for entities and relationships
|
|
- **IF EXISTS**: Read contracts/ for API specifications and test requirements
|
|
- **IF EXISTS**: Read research.md for technical decisions and constraints
|
|
- **IF EXISTS**: Read quickstart.md for integration scenarios
|
|
|
|
4. **Project Setup Verification**:
|
|
- **REQUIRED**: Create/verify ignore files based on actual project setup:
|
|
|
|
**Detection & Creation Logic**:
|
|
- Check if the following command succeeds to determine if the repository is a git repo (create/verify .gitignore if so):
|
|
|
|
```sh
|
|
git rev-parse --git-dir 2>/dev/null
|
|
```
|
|
|
|
- Check if Dockerfile* exists or Docker in plan.md → create/verify .dockerignore
|
|
- Check if .eslintrc* exists → create/verify .eslintignore
|
|
- Check if eslint.config.* exists → ensure the config's `ignores` entries cover required patterns
|
|
- Check if .prettierrc* exists → create/verify .prettierignore
|
|
- Check if .npmrc or package.json exists → create/verify .npmignore (if publishing)
|
|
- Check if terraform files (*.tf) exist → create/verify .terraformignore
|
|
- Check if .helmignore needed (helm charts present) → create/verify .helmignore
|
|
|
|
**If ignore file already exists**: Verify it contains essential patterns, append missing critical patterns only
|
|
**If ignore file missing**: Create with full pattern set for detected technology
|
|
|
|
**Common Patterns by Technology** (from plan.md tech stack):
|
|
- **Node.js/JavaScript/TypeScript**: `node_modules/`, `dist/`, `build/`, `*.log`, `.env*`
|
|
- **Python**: `__pycache__/`, `*.pyc`, `.venv/`, `venv/`, `dist/`, `*.egg-info/`
|
|
- **Java**: `target/`, `*.class`, `*.jar`, `.gradle/`, `build/`
|
|
- **C#/.NET**: `bin/`, `obj/`, `*.user`, `*.suo`, `packages/`
|
|
- **Go**: `*.exe`, `*.test`, `vendor/`, `*.out`
|
|
- **Ruby**: `.bundle/`, `log/`, `tmp/`, `*.gem`, `vendor/bundle/`
|
|
- **PHP**: `vendor/`, `*.log`, `*.cache`, `*.env`
|
|
- **Rust**: `target/`, `debug/`, `release/`, `*.rs.bk`, `*.rlib`, `*.prof*`, `.idea/`, `*.log`, `.env*`
|
|
- **Kotlin**: `build/`, `out/`, `.gradle/`, `.idea/`, `*.class`, `*.jar`, `*.iml`, `*.log`, `.env*`
|
|
- **C++**: `build/`, `bin/`, `obj/`, `out/`, `*.o`, `*.so`, `*.a`, `*.exe`, `*.dll`, `.idea/`, `*.log`, `.env*`
|
|
- **C**: `build/`, `bin/`, `obj/`, `out/`, `*.o`, `*.a`, `*.so`, `*.exe`, `Makefile`, `config.log`, `.idea/`, `*.log`, `.env*`
|
|
- **Swift**: `.build/`, `DerivedData/`, `*.swiftpm/`, `Packages/`
|
|
- **R**: `.Rproj.user/`, `.Rhistory`, `.RData`, `.Ruserdata`, `*.Rproj`, `packrat/`, `renv/`
|
|
- **Universal**: `.DS_Store`, `Thumbs.db`, `*.tmp`, `*.swp`, `.vscode/`, `.idea/`
|
|
|
|
**Tool-Specific Patterns**:
|
|
- **Docker**: `node_modules/`, `.git/`, `Dockerfile*`, `.dockerignore`, `*.log*`, `.env*`, `coverage/`
|
|
- **ESLint**: `node_modules/`, `dist/`, `build/`, `coverage/`, `*.min.js`
|
|
- **Prettier**: `node_modules/`, `dist/`, `build/`, `coverage/`, `package-lock.json`, `yarn.lock`, `pnpm-lock.yaml`
|
|
- **Terraform**: `.terraform/`, `*.tfstate*`, `*.tfvars`, `.terraform.lock.hcl`
|
|
- **Kubernetes/k8s**: `*.secret.yaml`, `secrets/`, `.kube/`, `kubeconfig*`, `*.key`, `*.crt`
|
|
|
|
5. Parse tasks.md structure and extract:
|
|
- **Task phases**: Setup, Tests, Core, Integration, Polish
|
|
- **Task dependencies**: Sequential vs parallel execution rules
|
|
- **Task details**: ID, description, file paths, parallel markers [P]
|
|
- **Execution flow**: Order and dependency requirements
|
|
|
|
6. Execute implementation following the task plan:
|
|
- **Phase-by-phase execution**: Complete each phase before moving to the next
|
|
- **Respect dependencies**: Run sequential tasks in order, parallel tasks [P] can run together
|
|
- **Follow TDD approach**: Execute test tasks before their corresponding implementation tasks
|
|
- **File-based coordination**: Tasks affecting the same files must run sequentially
|
|
- **Validation checkpoints**: Verify each phase completion before proceeding
|
|
|
|
7. Implementation execution rules:
|
|
- **Setup first**: Initialize project structure, dependencies, configuration
|
|
- **Tests before code**: If you need to write tests for contracts, entities, and integration scenarios
|
|
- **Core development**: Implement models, services, CLI commands, endpoints
|
|
- **Integration work**: Database connections, middleware, logging, external services
|
|
- **Polish and validation**: Unit tests, performance optimization, documentation
|
|
|
|
8. Progress tracking and error handling:
|
|
- Report progress after each completed task
|
|
- Halt execution if any non-parallel task fails
|
|
- For parallel tasks [P], continue with successful tasks, report failed ones
|
|
- Provide clear error messages with context for debugging
|
|
- Suggest next steps if implementation cannot proceed
|
|
- **IMPORTANT** For completed tasks, make sure to mark the task off as [X] in the tasks file.
|
|
|
|
9. Completion validation:
|
|
- Verify all required tasks are completed
|
|
- Check that implemented features match the original specification
|
|
- Validate that tests pass and coverage meets requirements
|
|
- Confirm the implementation follows the technical plan
|
|
- Report final status with summary of completed work
|
|
|
|
Note: This command assumes a complete task breakdown exists in tasks.md. If tasks are incomplete or missing, suggest running `/speckit.tasks` first to regenerate the task list.
|