---
name: chip-fetcher-sites
description: >-
  The chip-fetcher SOURCE-SITE skill pack — one installable skill per vendor
  website that chip-fetcher crawls (SnapEDA, Mouser, DigiKey, Ultra Librarian,
  Arrow, manufacturer sites…). Each sub-skill teaches the AI how to navigate
  THAT site's CAD-download flow through pup: the URL patterns, the login/gate,
  the download button dance, and — crucially — how to get unstuck when a site
  changes its layout or blocks automation. Third parties extend the pack by
  contributing a skill for a site they've figured out. Read this before driving
  chip-fetcher against a vendor site, or when a fetch gets stuck on a site whose
  layout or anti-bot defenses changed. Trigger words: chip-fetcher site, source
  site, vendor navigation, snapeda navigation, digikey blocked, mouser cad,
  ultralibrarian, site skill, crawl site, fetch stuck, anti-bot, captcha,
  download flow, add a site skill, contribute site skill.
---

# chip-fetcher source-site skill pack

chip-fetcher is an **open-source Page** (source public + `adompkg install`-able)
that *also carries a skill pack in the same repo*. The app is the crawler; this
pack is the **per-site navigation knowledge** the AI uses to drive it. They ship
together so the code and the know-how version in lockstep — but the know-how is
the part the community can extend without touching Rust.

## Why per-site skills

Every vendor site has its own CAD-download choreography, and they change it
without notice. SnapEDA gates behind a login; DigiKey periodically tightens
anti-bot and **blocks pup outright**; Mouser buries the 3D model behind a tab;
manufacturer sites (TI, ST, NXP, Nordic…) each have a different "CAD / Symbols &
Footprints" path. Hard-coding all of that in the binary means a site change is a
release. Capturing it as **a skill per site** means:

- the AI reads the current site's skill before navigating, so it knows the exact
  flow instead of guessing;
- when a site changes (or blocks us), **anyone** who figures out the new flow can
  fix it by editing one skill — no fork, no Rust, no release;
- the fix is discoverable: it's published to the wiki and the next person's AI
  picks it up.

The canonical sourcing ladder (Mfr → SnapEDA → Mouser → DigiKey → Arrow → CSE/UL
→ LCSC) still lives in the binary (`chip-fetcher sources`); this pack is the
**how-to-drive-each-rung** layer on top of it.

## Layout

```
skills/
├── SKILL.md                 # this file — the pack entry point + ladder
├── CONTRIBUTING.md          # how 3rd parties add / own a site skill
└── sites/
    ├── snapeda/SKILL.md     # the canonical reference flow (login + download)
    ├── digikey/SKILL.md     # incl. the "pup is blocked" recovery playbook
    ├── mouser/SKILL.md
    ├── ultralibrarian/SKILL.md
    └── manufacturer/SKILL.md# generic manufacturer-site approach (TI/ST/NXP/Nordic…)
```

Each `sites/<vendor>/SKILL.md` is a complete, installable skill with its own
trigger words, so the AI auto-surfaces the right one when it's about to touch
that vendor — or when a fetch against it gets stuck.

## What a site skill must contain

1. **Reach** — the canonical product-search / product-page URL pattern for an MPN.
2. **Gate** — login / region / cookie wall, and how the persistent pup profile
   gets past it (which profile, what creds key in `chip-fetcher creds`).
3. **Download flow** — the exact button/tab sequence to the CAD bundle, with the
   selectors or visual cues that identify each step.
4. **Catch** — what the downloaded artifact is (zip? IntLib? per-file?), where it
   lands, and how chip-fetcher pulls it off the desktop.
5. **When it breaks** — the failure signatures (block page, captcha, moved button)
   and the recovery playbook. This is the highest-value section — it's why the
   pack exists.

See `sites/snapeda/SKILL.md` for the template filled in.

## Adding a site

Found a site chip-fetcher doesn't know, or a new way past a block? Write a skill
for it and contribute it — `CONTRIBUTING.md` covers the two paths (PR it into the
pack, or own it in your own wiki repo and link it in). Either way your AI, and
everyone else's, gets smarter the next time that site comes up.
