# Agent Guide: savearth-hw-project ## WHY This repository stores the Savearth smart-shower flow-meter hardware. Agents editing here need to keep mechanical, electrical, manufacturing, and firmware contexts aligned, because a schematic change in `hardware/v2.9/easyeda/` can force a BSP update in `aws-iot-core-poc`, a BOM update in `hardware/v2.9/bom/`, and a Confluence page update. ## HOW - Work by hardware version: active production design is `hardware/v2.8/`, next spin is `hardware/v2.9/`. - Use the Python scripts in `hardware/common/scripts/` for repeatable BOM extraction and library conversion; do not hand-edit generated JSON/CSV files unless the source EDA project has changed. - Maintain parity between markdown docs in `docs/` and Confluence pages in the Hardware space. - When you touch files referenced by `AGENTS.md`, update this file too. ## WHAT ### Directory layout | Path | Contents | |---|---| | `hardware/v2.3/…v2.7/` | Legacy Altium and EasyEDA designs | | `hardware/v2.8/` | Active EasyEDA Pro production design, BOM, manufacturing outputs, parsed data | | `hardware/v2.9/` | Placeholder for next mitigation spin | | `hardware/common/` | Shared KiCad/EasyEDA libraries and automation scripts | | `docs/` | Analysis, guides, meeting notes, and reports | | `.aurelio/memory/` | Agent memory index and log | ### Key scripts See `hardware/common/scripts/README.md` for details. | Script | Purpose | |---|---| | `extract_bom.py` | Extract BOM from EasyEDA Pro `.epro` exports | | `generate_jlcpcb_bom.py` | Build JLCPCB-compatible CSV from extracted JSON | | `convert_to_kicad.py` | Convert LCSC parts to KiCad symbols/footprints/3D | | `extract_easyeda_db.py` | Parse the SQLite `.eprj` directly | ### Confluence mirror expectations Every document in `docs/` must have a corresponding Confluence page in the Hardware space. When you add, move, or rename a doc, mirror the change on Confluence or flag it in the commit message. ### Related repositories | Repository | Local path | Role | |---|---|---| | `aws-iot-core-poc` | `../aws-iot-core-poc` | Firmware and BSP | | `savearth-iot-infrastructure` | `../savearth-iot-infrastructure` | Cloud backend | | `hardware-devicesFirmwareTest` | `../hardware-devicesFirmwareTest` | Assembly-house test station | ### Local Aurelio Workspace This repository contains a local `.aurelio/` workspace configured for the `flow-meter-pcb` realm. It replaces the previous external Git submodule and connects directly to `savearth-mcp`, `savearth-workspace`, and the electrical MCP servers (`electrical-eda-mcp`, `electrical-sourcing-mcp`). Tracked bootstrap files: | File | Purpose | |---|---| | `.aurelio/config.toml` | Realm identity (`savearth Flow Meter PCB`, `flow-meter-pcb`, v2.8.0), sync endpoint, model defaults | | `.aurelio/mcp_config.json` | MCP server declarations scoped to hardware work | | `.aurelio/sync.py` | Push/pull the local `brain/` to the central Aurelio host | | `.aurelio/README.md` | Workspace documentation | | `.aurelio/realm/AGENTS.md` | Realm-specific agent guide | | `.aurelio/realm/memory/index.md` | Starter memory index | Use `python3 .aurelio/sync.py --pull` to fetch the latest central brain and `python3 .aurelio/sync.py --push` to publish local memory changes. Runtime brain artifacts under `.aurelio/brain/` and `.aurelio/memory/` are ignored by Git.