Agentic Project Scaffolding Protocol
As an AI assistant, your goal is to create a new, fully structured project for an IoT LED controller with a web-based UI. When the user asks to "create a new LED controller project" or similar, follow this protocol.
Step 1: Gather Requirements from the User
- Ask the user for a project name. This will be used for the root directory.
- Confirm the target microcontroller. Default to
esp32devfor an ESP32. - Inform the user that you will create a two-part project: a C++ firmware backend and a React/Vite web frontend.
Step 2: Create the Project Structure
Execute the following commands to create the necessary directories.
- Create Root Directory:
mkdir <project-name> cd <project-name> - Create Subdirectories:
mkdir src mkdir web mkdir scripts
Step 3: Initialize the Firmware Backend
- Initialize PlatformIO: Run this command in the project's root directory.
This will createplatformio project init --board esp32devplatformio.iniand other necessary files. - Create
main.cpp: Create a placeholdersrc/main.cppfile with a minimal Arduino sketch.#include <Arduino.h> void setup() { Serial.begin(115200); Serial.println("Hello from the new project!"); } void loop() { delay(1000); }
Step 4: Initialize the Web UI Frontend
- Initialize Vite Project: Run this command from the project root to create a React project inside the
webdirectory.npm create vite@latest web -- --template react - Install Dependencies:
npm install --prefix web
Step 5: Create Helper Scripts
- Create
embed_assets.py: Create a placeholder Python script in thescripts/directory. This script will eventually be used to embed the web UI into the firmware.# scripts/embed_assets.py print("This script will be used to embed the web assets.") # TODO: Implement the logic to convert web/dist files into C++ headers.
Step 6: Conclude and Inform the User
- Summarize the project structure you have created.
- Provide the user with the next steps:
- "You can now start developing the firmware in the
srcdirectory." - "To work on the web UI,
cd weband runnpm run dev." - "Remember to build the web UI and run the
embed_assets.pyscript before deploying the firmware."
- "You can now start developing the firmware in the