1c6c1952e8
Regressions fixed (aa916de simplification):
- firmware/platformio.ini: restore esp32s3_waveshare (pioarduino platform,
lib_deps: ArduinoJson/ESP32_Display_Panel/ESP32-audioI2S/IO_Expander,
BOARD_HAS_PSRAM, I2S pins), restore esp32s3_qemu (extends waveshare +
QEMU_BUILD), fix default_envs=esp32s3_waveshare, keep build_dir=/tmp/kl_pio_build
- .github/workflows/ci.yml: restore firmware-native (112 Unity tests),
firmware-build (esp32s3_waveshare artifact), firmware-sim (Wokwi gated),
hardware-export (KiCad ERC + SVG/PDF/netlist + KiBot + compliance)
- .gitignore: add .kibot-venv/ and .pio-venv/ (prevent committing venvs)
Dataset (HuggingFace clemsail/kill-life-embedded-qa v2):
- generate_hf_dataset.py: rag_query timeout 30s->120s (LLM takes ~45s),
rag_search timeout 15s->30s; resolves intermittent server-busy failures
- 30 entries (10+10+5+5) -- 100% coverage vs 21/40 previously
Firmware tests (112/112):
- 4 suites: test_basic (39), test_modules (32), test_radio_state (26),
test_wifi_state (15); test_logic.cpp now a stub (content moved to test_basic)
Hardware:
- esp32_minimal.kicad_pcb, esp32s3_enclosure.FCStd/.step, gen_pcb.py,
gen_enclosure.py, REGISTRY.md, ERC reports for all design blocks
MCP tools:
- apify_mcp.py: +5 Kill_LIFE tools (fetch_espressif_docs, fetch_kicad_library_info,
fetch_platformio_registry, ingest_to_rag, get_runtime_info)
- mcp_runtime_status.py: fix classify_overall -- accept_degraded respected for
failed checks, task annotations, optional_degraded logic cleaned up
- deploy/cad/docker-compose.yml: path mascarade->mascarade-main
Specs & docs:
- docs/plans/TODO_2026-03-26.md, TODO_2026-03-27.md
- ai-agentic-embedded-base/specs: arch, tasks, intake, spec updates
- docs/playbooks/kicad_happy_hw_bom_forge.md
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
109 lines
3.1 KiB
JSON
109 lines
3.1 KiB
JSON
{
|
|
"contract_version": "artifact-wms-index-v1",
|
|
"updated_at": "2026-03-22",
|
|
"root": "artifacts/",
|
|
"scan": {
|
|
"max_depth": 4,
|
|
"latest_patterns": ["*latest*.json", "*latest*.md", "*latest*.log"]
|
|
},
|
|
"rules": [
|
|
{
|
|
"match": "product_contract",
|
|
"consumer_layer": "MES",
|
|
"owner_agent": "SyncOps",
|
|
"lot_refs": ["T-RE-273", "T-RE-276", "T-RE-279", "T-RE-284"],
|
|
"purpose": "Product contract audit and handoff continuity"
|
|
},
|
|
{
|
|
"match": "kill_life_memory",
|
|
"consumer_layer": "MES",
|
|
"owner_agent": "KillLife-Bridge",
|
|
"lot_refs": ["T-RE-261", "T-RE-262", "T-RE-267"],
|
|
"purpose": "Canonical execution memory and resume continuity"
|
|
},
|
|
{
|
|
"match": "daily_operator_summary",
|
|
"consumer_layer": "MES",
|
|
"owner_agent": "SyncOps",
|
|
"lot_refs": ["T-RE-236", "T-RE-247"],
|
|
"purpose": "Operator handoff summary"
|
|
},
|
|
{
|
|
"match": "weekly_refonte",
|
|
"consumer_layer": "MES",
|
|
"owner_agent": "SyncOps",
|
|
"lot_refs": ["T-RE-234", "T-RE-253", "T-RE-257"],
|
|
"purpose": "Weekly execution summary"
|
|
},
|
|
{
|
|
"match": "mascarade_incident",
|
|
"consumer_layer": "WMS",
|
|
"owner_agent": "Artifact-Curator",
|
|
"lot_refs": ["T-RE-233", "T-RE-240", "T-RE-241", "T-RE-245"],
|
|
"purpose": "Incident brief, registry, queue, and watch outputs"
|
|
},
|
|
{
|
|
"match": "mascarade_watch",
|
|
"consumer_layer": "WMS",
|
|
"owner_agent": "Artifact-Curator",
|
|
"lot_refs": ["T-RE-250", "T-RE-252", "T-RE-257"],
|
|
"purpose": "Short watchboard and history artifacts"
|
|
},
|
|
{
|
|
"match": "mascarade_runtime_health",
|
|
"consumer_layer": "DCS",
|
|
"owner_agent": "Runtime-Guard",
|
|
"lot_refs": ["T-RE-222", "T-RE-263"],
|
|
"purpose": "Mascarade and Ollama runtime health"
|
|
},
|
|
{
|
|
"match": "mascarade_agent_smoke",
|
|
"consumer_layer": "DCS",
|
|
"owner_agent": "Runtime-Guard",
|
|
"lot_refs": ["T-RE-*"],
|
|
"purpose": "Agent smoke checks and runtime reachability"
|
|
},
|
|
{
|
|
"match": "mesh",
|
|
"consumer_layer": "DCS",
|
|
"owner_agent": "Runtime-Guard",
|
|
"lot_refs": ["T-RE-*"],
|
|
"purpose": "Mesh, dispatch, and runtime preflight"
|
|
},
|
|
{
|
|
"match": "dataset",
|
|
"consumer_layer": "WMS",
|
|
"owner_agent": "Dataset-Curator",
|
|
"lot_refs": ["T-MA-015", "T-MS-002", "T-MS-003"],
|
|
"purpose": "Dataset audit, preflight, and fine-tune staging"
|
|
},
|
|
{
|
|
"match": "repo_state",
|
|
"consumer_layer": "PLM",
|
|
"owner_agent": "PLM-Archivist",
|
|
"lot_refs": ["T-RE-*"],
|
|
"purpose": "Repository coherence and state evidence"
|
|
},
|
|
{
|
|
"match": "specs",
|
|
"consumer_layer": "PLM",
|
|
"owner_agent": "PLM-Archivist",
|
|
"lot_refs": ["T-RE-*"],
|
|
"purpose": "Specification-derived artifacts"
|
|
},
|
|
{
|
|
"match": "operator_lane",
|
|
"consumer_layer": "MES",
|
|
"owner_agent": "SyncOps",
|
|
"lot_refs": ["T-RE-*"],
|
|
"purpose": "Primary operator lane evidence"
|
|
}
|
|
],
|
|
"defaults": {
|
|
"consumer_layer": "WMS",
|
|
"owner_agent": "Artifact-Curator",
|
|
"lot_refs": [],
|
|
"purpose": "Unclassified artifact group"
|
|
}
|
|
}
|