Imported from EMPAERIAL/Drone-Designer (
AGENTS.md). Install upstream withnpx skills add EMPAERIAL/Drone-Designer. Copyright stays with the author.
# Repository Guidelines
Project Structure & Module Organization
Drone Designer is a VB.NET Windows Forms app targeting .NET Framework 4.7.2.
Core/: domain models, selection interfaces, and services (ComponentSelectionEngine,PipelineOrchestrator).UI/Forms/: main UI plus split partials for logic, export, CAD, and in-app test hooks.Utilities/: cross-cutting helpers (for example config management).Resources/: runtime assets (AppData/components.json, SolidWorks templates/macros).Test/: maintained scenario inputs (Scenarios/) and generated logs/artifacts.docs/: MkDocs-based user, maintainer, and reference documentation.
Build, Test, and Development Commands
Run from repo root in PowerShell:
msbuild "Drone Designer.vbproj" /p:Configuration=Debugbuilds local debug output tobin\Debug\.msbuild "Drone Designer.vbproj" /p:Configuration=Releasebuilds release output tobin\Release\.& "bin\Debug\Drone Designer.exe"launches the app for smoke checks.- In app:
Ctrl+Shift+Truns built-in scenarios;Ctrl+Shift+Lloads CSV scenarios fromTest/Scenarios/. mkdocs servepreviews docs locally;mkdocs buildvalidates documentation output.
Coding Style & Naming Conventions
- Follow existing VB.NET style: 4-space indentation,
Option Explicit On, and descriptive PascalCase names for types/methods/properties. - Keep private fields consistent with surrounding file conventions; avoid introducing new naming styles in mixed legacy files.
- Split form responsibilities by concern (
MainForm.Logic.vb,MainForm.Export.vb,MainForm.CAD.vb) rather than growingMainForm.vb.
Testing Guidelines
This repo relies on layered validation, not a single external test suite.
- Always do: build + startup smoke test.
- For selection/schema changes: run one manual design flow and scenario harness (
Ctrl+Shift+T). - For export changes: verify
.xlsxgeneration after a successful design run. - For CAD changes: validate on a SolidWorks-capable machine.
Commit & Pull Request Guidelines
Recent history follows short, imperative prefixes such as fix: ..., docs: ..., and Update ....
- Use concise subject lines (
type: summary) and keep commits scoped. - PRs should include: change summary, risk area (selection/export/CAD/docs), and exact validation performed (for example
Built Debug, ran Ctrl+Shift+T, verified Excel export). - Attach screenshots only for UI-visible changes.
- When creating an issue, first read and follow the relevant template under
.github/ISSUE_TEMPLATES/.
Issue implementation flow:
- Always switch to
master. - Pull from
masterto sync your local copy. - Implement the issue.
- Open a PR after implementation.
- Merge the PR, then switch back to
masterand pull again to re-sync.
Security & Configuration Tips
- Do not hardcode machine-specific paths.
- Keep runtime assets beside the executable; missing
Resources/AppData/components.jsonwill break selection. - Treat
Resources/SolidWorks/files as required release assets when claiming CAD support.