Embedded Systems Architect
Turn week-three surprises into day-one knowledge. An evidence-driven agent skill for embedded systems & edge-AI development — from "here's a board and a pile of vendor docs" to a deployable, verifiable, recoverable plan.
繁體中文版 README · MIT License · v0.1.0
What it is
A skill that turns a general-purpose AI agent into an exploratory, evidence-driven embedded systems architect. Feed it whatever you have — datasheets, SDKs, BSPs, sample code, models, logs, half-bricked boards — and it builds a persistent project context, reasons across every layer of the stack, and converts each unknown into a cheap, observable experiment.
What it is not: a documentation search engine, a spec-sheet reciter, or a flashing script generator. It will not claim a model "runs" because the TOPS number looks big, and it will not hand you an irreversible command.
Quick start
Claude Code — one-line plugin install (recommended; gets updates automatically):
claude plugin marketplace add Zachariah9420/embedded-systems-architect && claude plugin install embedded-systems-architect@embedded-systems-architect
Or inside an interactive session: /plugin marketplace add Zachariah9420/embedded-systems-architect, then /plugin install embedded-systems-architect@embedded-systems-architect.
Claude Code — manual install (plain skill, no plugin system needed):
git clone https://github.com/Zachariah9420/embedded-systems-architect.git ~/.claude/skills/embedded-systems-architect
Windows (PowerShell):
git clone https://github.com/Zachariah9420/embedded-systems-architect.git "$env:USERPROFILE\.claude\skills\embedded-systems-architect"
Then just talk about your board, SDK, model deployment, or flashing problem — the skill triggers on embedded/edge-AI context.
OpenAI Codex — clone anywhere and point the agent at the directory; AGENTS.md routes it to SKILL.md. Cold-start validated (see Evaluation).
Gemini CLI and others — a GEMINI.md adapter is included and the core is plain markdown + standard Python, so it should carry over — but it has not been validated there yet. Reports welcome.
Dependencies: Python 3.9+ (stdlib only for core; onnx / tensorflow optional, with graceful degradation). 7-Zip recommended on Windows for split archives.
How it works
Everything runs through one loop (diagram above), under three design commitments:
1. Evidence tiers on every conclusion
| Tier | Meaning |
|---|---|
| 已確認 Confirmed | Directly supported by docs, code, tool output, or measurement |
| 工程推論 Engineering inference | Soundly derived from known facts, not yet tested in this project |
| 估算 Estimate | Produced by a calculation model or approximation |
| 待驗證 To verify | A concrete verification method exists but has not been run |
| 資料不足 Insufficient data | Key information missing — never fabricated; the answer lists how to obtain it |
User-quoted specs ("the datasheet says 8 MB") are treated as to verify and checked against the actual documents before use. Negative results keep their evidence too: a failed model conversion is recorded with tool version, command, failing node, and full log — never just "unsupported".
Every high-impact conclusion follows one format. An illustrative example:
Conclusion: model X (640×640, INT8) cannot run fully on the NPU — SiLU nodes fall back to CPU. [Engineering inference] Evidence: the toolchain's operator-support table does not list SiLU;
inspect_model.pycounts 57 SiLU nodes (log saved). If wrong: the end-to-end latency budget collapses; affects SoC selection. Next verification: run the vendor converter on the real model and read the partition report. [To verify]
2. Cross-layer reasoning
flowchart LR
P["Product context"] <--> M["Model & ops"] <--> R["Runtime"] <--> T["Toolchain"] <--> S["System SW / BSP"] <--> H["Hardware"] <--> D["Deployment"]
"The weights fit in RAM" never implies "it runs in real time" — activations, runtime overhead, memory bandwidth, operator support, and data movement are checked layer by layer before any feasibility verdict.
3. Hard gates on irreversible operations
Fuse/OTP/eFuse, secure boot keys, flash encryption, permanent write protection, anti-rollback: the skill lists steps, preconditions, and consequences — it never emits copy-paste-executable commands for these, and it refuses to output any device-write flow until a recovery path is confirmed. Flashing defaults to dry-run with read-back verification. These gates held under direct user pressure and injected fake specs during evaluation.
Persistent project memory
Each engagement maintains an EMBEDDED_CONTEXT.md in your project root: platform facts, stack versions, verified procedures, open questions — every entry dated and evidence-tiered. A new session (or a new teammate) picks up where the last one left off instead of re-reading two gigabytes of PDFs.
"Isn't this just pasting docs into an LLM?"
Half true — the LLM is the engine. The skill adds what raw pasting cannot:
- The paste doesn't physically fit. Real vendor drops are gigabytes; every context window forces selective reading. The skill makes the selection systematic (list archives before extracting, index before reading, route by task) instead of lucky — verdicts like "you're missing X" get checked against archive contents, not just file names.
- Memory across sessions. Raw chat resets to zero; the context file compounds.
- Honesty discipline. Raw LLMs blend documentation, memory, and plausible guesses into fluent prose. The tier system keeps them separated.
- Safety gates. A raw LLM will paste an eFuse command from a forum. This one won't, by construction.
How it was validated
Summary — full protocol and numbers in docs/evaluation.md:
- Built and exercised end-to-end against a fixed multi-gigabyte private document corpus from a commercial edge-AI NPU platform, alongside a production-grade image-recognition application.
- Cold-start examination: 15 fresh-context sessions on Claude Sonnet with nothing but this skill and the corpus — 2/2 trigger accuracy, no fabricated claims found by graders, no safety-gate breaches (including under direct pressure and fake-spec injection), ≈93% average on 8 held-out field-debugging cases graded against pre-registered answer keys.
- Cross-agent: the same protocol passed on OpenAI Codex (gates held; evidence-tiered citations down to SDK source lines). Gemini CLI: untested.
- Known floor: on very small models (Haiku-class), safety gates still held in probes, but evidence discipline degraded. Recommended: Sonnet-class or better.
What it can and cannot save you from
Pits come in two kinds. Information-integration pits — the answer exists on page 300 of a PDF, in an operator support table, or in a forum thread; the skill is built to catch these on day one. Reality-only pits — a camera mounted at the wrong angle, a data-distribution mismatch, a hardware quirk no document mentions; no tool can foresee these. The skill's job there is to put a cheap, observable experiment in front of each one, and to make sure no pit is stepped in twice within the same project.
Repository layout
embedded-systems-architect/
├── SKILL.md # the skill: triggering, routing, evidence rules, hard gates
├── references/ # 10 on-demand playbooks (discovery, deployment, flashing…)
├── scripts/ # 5 stdlib-first Python tools (model/SDK/repo inspection…)
├── assets/project-output-templates/ # context / experiment card / feasibility / recovery templates
├── docs/ # evaluation notes and README artwork
├── AGENTS.md # entry adapter for OpenAI Codex–style agents
├── GEMINI.md # entry adapter for Gemini CLI
├── CONTRIBUTING.md # authoring conventions (terminology, script spec, gate wording)
└── LICENSE # MIT
Language note: the skill's instruction files — and the --help output of the scripts — are written in Traditional Chinese (the skill's primary validation environment). Agents read them natively and respond in your language.
Contributing
Bug reports and field results from other boards/ecosystems are the most valuable contribution — open an issue with your platform, what the skill got right, and where it fell short. Content contributions must follow CONTRIBUTING.md.
No comments yet
Be the first to share your take.