3.3 KiB
3.3 KiB
ChatGPT project context
This directory is a local mirror of the ChatGPT project “maze32”.
- Treat every file under
sources/as read-only reference material. - Do not edit, rename, move, or delete synced project files.
- These files may be replaced the next time a task is created from this ChatGPT project.
Project instructions
Language
- Write all canonical documentation in English.
- Write source comments, test names, protocol identifiers, log messages, and user-facing diagnostic text in English.
Canonical documents
MVP.mddefines product scope, gameplay rules, and MVP acceptance criteria.ARCHITECTURE.mddefines implementation contracts and technical boundaries.PLANS.mddefines the current implementation milestone and its evidence.docs/BOARD_PASSPORT.mddefines confirmed hardware facts and explicit unknowns.- Files under
sources/remain read-only references and are never canonical implementation files.
When documents disagree, stop and resolve the conflict before implementation. Do not silently choose one requirement over another.
Milestone workflow
- Follow
PLANS.mdstrictly. - Milestones may be planned and added to
PLANS.mdin batches. - Number milestones from 1 without gaps using
Milestone 001,Milestone 002, and so on. - Execute milestones strictly in ascending numerical order.
- Do not start a milestone until every preceding milestone is
COMPLETE. - Keep at most one milestone
IN_PROGRESS. - Append newly discovered milestones to the end of
PLANS.md; do not insert or renumber existing milestones without explicit project-owner approval. - Every milestone must include objective, scope, deliverables, acceptance criteria, evidence, and status.
- Do not mark a milestone
COMPLETEwithout concrete recorded evidence for every acceptance criterion.
Locked platform baseline
- Target ESP32-C6FH4 with 4 MB Flash.
- Do not require PSRAM.
- Use PlatformIO with
espressif32@7.0.1, ESP-IDF, and the compatibleesp32-c6-devkitm-1board profile. - Use
partitions.csvandsdkconfig.defaultsfrom the project root. - Do not add an OTA partition for MVP.
- Do not assume a board GPIO map, built-in LED, or exact commercial PCB model.
Architectural invariants
- The ESP is the sole authoritative owner of lobby and match state.
- Browsers send commands and render server-approved projections; they do not decide movement, inventory, timers, visibility, or results.
- Never serialize hidden maze or object state to player clients.
- Observer sessions are read-only.
- Bound all connection counts, message sizes, queues, retries, and allocations.
- Active game state need not survive reboot; Wi-Fi configuration must persist in NVS.
Build and verification
- Parse the project configuration with
/home/sasa/.platformio/penv/bin/pio project configafter changingplatformio.ini. - Build with
/home/sasa/.platformio/penv/bin/pio runonce firmware sources exist. - Add host-side deterministic tests for portable game logic before relying only on device tests.
- Verify the final application and filesystem sizes against
partitions.csv. - Test on the physical board before recording hardware acceptance evidence.
- Preserve exact commands and relevant outputs in the active milestone's evidence section.