pcbkit builds schematics by composing curated, parameterized reference circuits: regulator stages, MCU support circuits, interface blocks, drivers. The original plan assumed that about 30 well-chosen reference circuits would cover most hobbyist and prototype requests. Thirty is small enough to curate carefully by hand, which is exactly why we wanted it to be true. Before committing the architecture to it, we decided to measure it.
Method
We collected 100 realistic schematic requests, the kind of plain-language prompts we expect people to type: “a battery-powered temperature logger with an ESP32,” “USB-C to bare-wire power adapter with current limiting,” “a MIDI-to-CV converter.” They came from our own project backlogs and from request patterns on public electronics forums, de-duplicated so that no single project archetype dominated the set.
Then we decomposed each prompt by hand into the functional blocks a schematic for it would need. A prompt counts as fully covered if every block maps to an entry in the planned 30-circuit library, and partially covered if at least 70% of them do. The strict definition of full coverage is on purpose: a schematic missing one block is not something the user can open and use.
Result: 26 of 100
The planned library fully covered 26 of the 100 prompts. By domain:
| Domain | Prompts | Fully covered | Partially (≥70%) | Uncovered |
|---|---|---|---|---|
| Adapters, connectors, breakouts | 18 | 1 | 3 | 14 |
| MCU core + support | 16 | 6 | 7 | 3 |
| Sensor interfaces | 15 | 4 | 6 | 5 |
| Power supplies & regulation | 14 | 7 | 5 | 2 |
| Communications (USB, UART, CAN, RF) | 12 | 3 | 5 | 4 |
| Motor & load drivers | 11 | 3 | 4 | 4 |
| Audio | 6 | 1 | 2 | 3 |
| Other | 8 | 1 | 2 | 5 |
| Total | 100 | 26 | 34 | 40 |
Where the assumption failed
Adapters, connectors, and breakouts turned out to be the largest request domain (18 of 100) and the worst covered (1 of 18). This probably shouldn't have surprised us. Adapter requests are combinatorial: USB-C to barrel jack, JST-PH to screw terminal, Qwiic to a bare 0.1″ header, each with or without level shifting, with or without inline protection. A curated library can't enumerate that space. Each new adapter entry covers exactly one cell of a large matrix, so adding entries barely moves the number.
Curation works where designs converge. Power regulation scored 7 of 14 because a buck stage is a buck stage, and MCU support circuits are the same five blocks every time: crystal, decoupling, reset, programming header, maybe a USB interface.
The revised architecture
So connectors and adapters became a generator instead of library content. It knows pinouts, mating conventions, and pass-through rules, and can produce any cell of the adapter matrix from a parts database. Everything else still comes from the curated blocks, which grew to roughly 40 stages.
Re-scoring the same 100-prompt corpus against the revised design gives about 75% full coverage. The remaining quarter is a long tail of specialized RF, high-voltage work, and analog signal chains with tight specs. We'd rather have the tool refuse those requests than produce schematics it can't validate.
What we took away
The corpus took a few days to build and score by hand, which is cheap compared to building the wrong library. It also doubles as a regression suite now: any change to the block library or the generator gets re-scored against the same 100 prompts, so we can tell whether coverage actually improved.
pcbkit is an AI-assisted KiCad schematic tool in development — join the waitlist.