# Stage 2 Research Log — Pneumatic Wrist Device Leads

## 2026-06-11

### Audit of stage 1 longlist

- Triage of `combined_leads.csv` (119 rows, 28 cols) by `lead_category` × `confidence`:
  - **wearable_odm**: 16 entries (9 conf-4, 5 conf-3, 2 conf-2) — the real meat, must verify
  - **pump_valve_sensor_supplier**: 9 entries — pump/valve/MEMS component suppliers
  - **solution_provider**: 3 entries — too thin
  - **pneumatic_actor_supplier** (default tag, conf-2): 86 entries from `stage1_raw_leads.csv` — most are auto-generated-looking "xxx-pneumatic.com" domains; many unverified. Treated as breadth-keepers, not high-priority
  - 3 placeholders flagged (TechCo A/B, NewAge Sensors — kept for audit trail)

- 4 cross-file duplicates caught by the merge: Wellue, 恒脉微 (×2), CurieJet (×2)
  - These are real companies that appeared in both raw passes — de-duped correctly

### Verification pass — top conf-4 leads

Direct `web_fetch` of company product pages (status 200, real content, not 404s):

| id | company | result |
|----|---------|--------|
| C001 | Ycaviation (玉成创新) | ✓ S26 product page confirms micro air-pump + elastic air bag + oscillometric BP |
| C002 | Ti Hui Da (蒂汇达) | ✓ piezoelectric actuator factory; component supplier to multiple ODMs (confirmed by GY S101 BOM) |
| C005 | Juwey (聚伟) | ✓ W26/FS26 medical-grade 4G BP smartwatch ODM; class II medical cert |
| C007 | Wellue | ✓ BPW1 verified |
| C009 | GY Smartwatch (格炎) | ✓ S101 verified; uses 蒂汇达MAC2011A piezo pump + 钧安AS55 sensor. National high-tech enterprise |
| C010 | Sictech (西城微科) | ✓ PCBA + chip-scheme house, air-pump BP module |
| C011 | XinRui (新蕊) | ✓ air-pump BP smartwatch specialist |
| C012 | YunTian (云天) | ✓ YTW01 air-pump BP smartwatch, 1.78" AMOLED 4G |
| C013 | Hengmic (恒脉微) | ✓ MEMS piezo pump + tactile cuff + AI algorithm; full medical wrist BP solution |
| C014 | CurieJet (科瑞杰特) | ✓ B03AF wearable silent BP module (pump+driver+sensor+valve+MCU) |
| C017 | Suntech (顺泰) | ✓ BP sensor OEM (Halma group) |
| C019 | Huateng (华腾) | ✓ H30 (with Japanese precision micro air pump) + Y01 4G LTE variant |
| C027 | Huayi Medical | ✓ air-pump BP watch product page |

### New search iterations

Queries run that pulled fresh leads:

- `MEMS micropump wearable blood pressure smartwatch ODM China` → YW MEMS (Suzhou), Hengmic海外品牌 FitologyHealth, Alibaba BP watch listing
- `气动手环 ODM 工厂 血压` → Urion (优瑞恩 — strongest find, with public contact), Jamr, Longfen, Zhihu roundup
- `"示波法" 血压 手表 OEM 深圳` → Huawei WATCH D2 (reference design), 1688 柯氏音法 cuff
- `"air pump" "blood pressure" watch supplier Shenzhen manufacturer` → Staranb (Made-in-China), Twinkler (HKTDC verified), Beimeikang (GlobalSources), iWonlex HW10, Xinzhiyan, Huateng Y01 confirmation
- `soft pneumatic wearable actuator supplier haptics medical` → academic-only (SenAct, IEEE haptic SPA, HaptX Airpack, Artimus). Not actionable for a BP wrist device today; flagged as a **research-side gap** (no commercial soft-pneumatic actuator vendor serves the wrist-BP form factor yet)
- `"压电陶瓷气泵" 腕表 血压 厂家` → 0 results (too narrow). Note: the same vendor is referenced by name in the GY S101 BOM — so the supply chain is real but the query doesn't surface it

### New leads (11) added in `stage2_enriched_leads.csv`

| id | company | why it matters |
|----|---------|----------------|
| N001 | **Urion (优瑞恩)** | ★ Strongest find: full BP watch lineup (U16H/K, U19M), public mobile + hotline + QQ, 2011 founded, Shenzhen factory, class II medical-grade claims |
| N002 | YW MEMS (Suzhou) | MEMS micropump module maker; alternative/complement to Hengmic for the pump component |
| N003 | Hengmicro / FitologyHealth | Hengmic's overseas brand — useful for export channels |
| N004 | Twinkler (HKTDC verified) | Uses Murata piezo pump (premium JP component) |
| N005 | Staranb (Made-in-China) | Clean oscillometric-method statement on product page |
| N006 | Beimeikang (Global Sources) | Medical-grade multi-parameter BP watch |
| N007 | Xinzhiyan (Alibaba) | Needs manual verification |
| N008 | iWonlex HW10 | 4G medical-grade BP watch, GPS+Beidou, elder-care positioning |
| N009 | Longfen (龙汾) | Bracelet-form, may be PPG-based BP not air-pump — flag |
| N010 | Jamr | Mostly arm-cuff; SKD module approach may apply |
| N011 | **Huawei WATCH D2** | Reference design (not a supplier) — defines the medical-grade oscillometric + cuff spec to match |

### Noted barriers & gaps

- **Soft-pneumatic wearable actuators**: only academic/research supply. No commercial vendor. If the device needs novel haptic feedback, this is a research-collaboration lane, not a buy lane
- **1688 captcha wall**: still blocking some Chinese marketplace pages — no new data from those
- **Contact info**: most ODMs gate contact behind Alibaba/1688 chat or company-site forms; only Urion and Hengmic (via 163.com coverage) publish direct numbers
- **stage1 raw entries (86)**: largely unverified. Many look auto-generated (uniform `<region><adjective>-pneumatic.com` pattern). Treated as breadth; not worth chasing individually without a query that proves relevance

### Where stage 3 should start

1. Send capability questionnaire to top-10 verified wearable ODMs (Urion, GY, Juwey, Huateng, YunTian, XinRui, Staranb, Twinkler, iWonlex, Beimeikang)
2. For the pump component, parallel-track: Hengmic, YW MEMS, Ti Hui Da, CurieJet (the four pump-side suppliers). Get datasheets, MOQs, lead times, customization willingness
3. Reach out to the export-facing brands (FitologyHealth) only if the longlist target is non-CN markets
4. Re-derive a target spec from Huawei WATCH D2 (cuff geometry, pressure sensor spec, target medical cert class) before the questionnaire

## 2026-06-17 — stage 2 verify pass (apify enrich, run 1)

- Actor: `piotrv1001/1688-listings-scraper` (PPE, $4/1k with includeDetails)
- Cost estimate: $0.09 (cap $0.50). Actual: ~$0.09. Run duration 56s.
- Input: 22 offer IDs (the conf-3+ hits from stage 1)
- Result: 22/22 enriched — all rows have sellerCompany + sellerMemberId + sellerWinportUrl + MOQ + soldCount

### Decision rubric

- `factory_active` (promote): name has 科技/技术/电子/健康/医疗/智能/信息, sold > 0, MOQ ≤ 100
- `watchmaker_active` (promote): name has 表业/钟表, sold > 0, MOQ ≤ 100
- `trader_not_factory` (hold): name has 贸易 — possibly still useful for non-OEM lanes
- `inactive_or_high_moq` (hold): zero sales, or MOQ > 100
- `name_pattern_reject` (kill): 家居/塑胶/用品/配件 — non-watch businesses

### Promote to tier-1 verified (13 companies, 18 leads)

Outreach lane. Sorted by lifetime sold (lifetime sold = `soldCount` field; not the same as 30-day search-card sales from stage 1).

| Sold | MOQ | Models | Company | Notes |
|---:|---:|---:|---|---|
| 24,119 | 2 | 2 | 深圳市智亿元科技有限公司 | top dog, 2 watch models |
| 11,986 | 1 | 1 | 深圳市海川帆电子科技有限公司 (login: 千百川) | MOQ 1, the easiest to start with |
| 1,613 | 1 | 1 | 上海浩碧信息科技有限公司 (login: 浩碧数码科技) |  |
| 1,295 | 2 | 1 | 深圳市科威逊科技有限公司 | the original S26 example, https://detail.1688.com/offer/956757648353.html |
| 701 | 2 | 1 | 深圳市伟锐达电子科技有限公司 |  |
| 578 | 1 | 1 | 深圳市聚美戴医疗电子有限公司 | "医疗" = medical in name, the only one |
| 338 | 1 | 1 | 广州恒昇达表业有限公司 | 表业 = watchmaker, worth a closer look |
| 287 | 1 | 1 | 深圳宏伟冠信息技术有限公司 |  |
| 189 | 2 | **5** | 深圳市智惠宇科技有限公司 | 5 BP-watch models — the S26 family OEM |
| 179 | 2 | 1 | 东莞市星翔创科技有限公司 |  |
| 155 | 2 | 1 | 深圳市品创诺智慧电子有限公司 |  |
| 146 | 1 | 1 | 深圳市芭乐健康科技有限公司 | the P700 AMOLED seller, MOQ 1 |
| 15 | 1 | 1 | 深圳市小糖果科技有限公司 | low volume, MOQ 1 — small-batch specialist |

### Hold for human review (1 company, 1 lead)

| Sold | MOQ | Company | Reason |
|---:|---:|---|---|
| 34 | 2 | 深圳市华唯诺贸易有限公司 | trader, not factory. Could be a useful distributor lane. |

### Reject (2 companies, 3 leads)

| Sold | MOQ | Company | Reason |
|---:|---:|---|---|
| 3,183 | 1,000 | 广州市优伟家居用品有限公司 | "家居用品" = home goods. The 3,183 sales are TPU watch straps & accessories, not watches. 1,000 MOQ confirms. |
| 0 | 5 | 隽业塑胶制品有限公司 | "塑胶制品" = plastic products, no sales. |

### Manual VNC look: not run in this pass

1688 mobile route serves a `_____tmd_____` block page from the openclaw egress (178.105.110.42, hetzner — datacenter range, gated by 1688). apify gets around it via their CN residential proxy network; the local browser does not. The visible chrome on VNC display :1 may or may not work — needs a human in the loop to solve captchas if they appear. Skipped in this run; outreach lane is built on the apify data alone. Revisit later if ishmael wants a human-verified look at the top 3.

### Files

- `stage2_enriched.csv` — 22 rows with company + MOQ + soldCount
- `leads_clean.csv` — 18 verified tier-1 leads (promote list)
- `stage2_rejected.csv` — 3 rejected leads with reason
- `stage2_hold.csv` — 1 lead for human review

---

## 2026-06-20 — S11/S12 reclass

ishmael flagged: the S11/S12 family (S12MAX, s12, S11) is a Huaqiangbei generic clone-watch line — PPG-only, no physical air-pump. 2 of the 13 promote-lane sellers were 100% in this family:

- **智亿元科技** (L070, L079): 2 S12MAX offers, 24,119 lifetime sold. Top dog by volume but the product is a clone-Watch clone.
- **海川帆电子 / 千百川** (L083): 1 s12 offer, 11,986 lifetime sold. Same family.

Both dropped. The air-pump lane loses ~36k of phantom volume but gains accuracy on the OEM-fit question. New top by volume is 浩碧信息科技 (1,613 sold, GT7 ULTRA — see open question below).

**Action taken:**

1. Reclassified L070/L079/L083 in `leads_clean.csv` notes: `stage2: factory_active` → `stage2: s11_s12_no_airpump`. A re-run of the stage-2 classifier will pick this up automatically.
2. Moved them in `crm.csv`: `tier=DISQ`, `crm_stage=Pass`, `bp_watch=no`, `crm_notes` prefix = "S11/S12 family (Huaqiangbei generic, no air-pump) — …". Rows kept for audit trail but won't surface in the t1 outreach filter.
3. Regenerated `stage2_promote_summary.csv` with the stricter filter: a company is included only if at least one of its offers is not s11/s12. Result: **11 companies, 15 leads**.

**Updated promote list (11 companies, 15 leads):**

| Sold | MOQ | Models | Company | Notes |
|---:|---:|---:|---|---|
| 1,613 | 1 | 1 | 上海浩碧信息科技 | GT7 ULTRA — see open question below |
| 1,295 | 2 | 1 | 深圳市科威逊科技 | the original S26 example, offer 956757648353 |
| 701 | 2 | 1 | 深圳市伟锐达电子 | S9Utlr3 — see open question below |
| 578 | 1 | 1 | 深圳市聚美戴医疗电子 | the only "医疗" in name |
| 338 | 1 | 1 | 广州恒昇达表业 | the only 表业 watchmaker |
| 287 | 1 | 1 | 深圳宏伟冠信息技术 | gps老人 |
| 189 | 2 | **5** | 深圳市智惠宇科技 | the S26 family OEM — TK65/P300pro/s101/S25/严选s101 |
| 179 | 2 | 1 | 东莞市星翔创科技 | NX7 AMOLED |
| 155 | 2 | 1 | 深圳市品创诺智慧电子 | S26 air-pump |
| 146 | 1 | 1 | 深圳市芭乐健康科技 | the P700 AMOLED seller |
| 15 | 1 | 1 | 深圳市小糖果科技 | small-batch specialist, MOQ 1 |

**Open question for next pass:**

浩碧 (GT7 ULTRA) and 伟锐达 (S9Utlr3) are also "Huaqiangbei generic" model lines — same family of PPG-clones. They have BP listed in the title but no explicit `气泵/气囊` in the evidence keywords. If the rule is "must have a physical air-pump in the evidence/title", these are also out. Left them in for now because (a) the user named S11/S12 specifically, and (b) 1688 listings often don't put the air-pump in the title even when the product has one (the cuff spec is in `attributes_json`).

**Recommended next step:** scan the `attributes_json` column in `stage2_enriched.csv` for "气囊" / "气泵" mentions before any outreach. If 浩碧/伟锐达 also fail that, the lane is 9 companies / 14 leads (real air-pump only).

---

## 2026-06-20 (afternoon) — per-product review by ishmael

ishmael reviewed every promoted offer (model name) one by one and made the call. the regex-driven S11/S12 filter caught the right *family* but missed 7 other PPG-only / Huaqiangbei-clone models in the same trap. his manual review is the source of truth; the regex is now updated to match it.

**KEEP models (the air-pump lane):** S26, TK65, P300, S25, s101, P700

**DROP everything else in the stage-2 long-tail:** GT7, S9, F22R, NX7, ZL02, 老人定位/老人gps, S12MAX, s12, S11

Note: S25/S26 use `(?![\d])` lookaheads so S260/S267 don't accidentally match.

### Final air-pump promote lane — 4 companies, 8 leads

| Rank | Sold | MOQ | Models | Company | Credit | Notes |
|---:|---:|---:|---:|---|---|---|
| 1 | 189 | 2 | **5** | 深圳市智惠宇科技 | 信用优秀 | S26 family OEM (TK65/P300pro/s101/严选s101/S25) — the highest-leverage outreach |
| 2 | 1,295 | 2 | 1 | 深圳市科威逊科技 | — | original S26 example, offer 956757648353 |
| 3 | 155 | 2 | 1 | 深圳市品创诺智慧电子 | — | S26 air-pump |
| 4 | 146 | 1 | 1 | 深圳市芭乐健康科技 | — | P700 AMOLED — only AMOLED-screen model in the longlist |

### Dropped (per-product review)

10 leads across 9 companies, all PPG-only (Huaqiangbei-clone or generic elderly-watch) — no physical air-pump in evidence:

- 智亿元 (L070, L079) — S12MAX × 2
- 海川帆 / 千百川 (L083) — s12
- 浩碧 (L072) — GT7 ULTRA
- 伟锐达 (L076) — S9Utlr3
- 聚美戴 (L074) — F22R
- 星翔创 (L071) — NX7 AMOLED
- 恒昇达 (L078) — ZL02
- 宏伟冠 (L073) — 老人gps
- 小糖果 (L069) — 老人定位 5G

All 10 are logged in crm.csv as `tier=DISQ, crm_stage=Pass, bp_watch=no` for audit trail but won't surface in the t1 outreach filter.

### crm.csv totals after the reclass

- 19 t1 (was 26) — 5 of those are 智惠宇 (信用优秀)
- 5 t2
- 1 t3
- 13 disq (was 6)
- 1 unreachable
- **39 total** (unchanged)

### Open question (smaller now)

科威逊 and 品创诺 — are they 1) actually air-pump factories making their own product, or 2) the same S26 family reseller (just at lower volume than 智惠宇)? worth asking the seller via 1688 chat before any NDA. 芭乐 (P700) is a different product line (AMOLED), so it's a parallel lane, not a duplicate.

### Data gap (for next pass)

The 1688 / alibaba credit rating (e.g. 信用优秀) is not pulled by the apify stage-2 actor and doesn't surface in attributes_json. ishmael has the value for 智惠宇 from his own browsing. For the other 3 promote companies (科威逊 / 品创诺 / 芭乐) the credit rating is unknown — would need a manual alibaba.com lookup, or a separate apify actor that pulls the credit badge from the contact card. left the credit_rating column in crm.csv empty for those rows; the schema is in place for future entries.

---

## 2026-06-20 (afternoon, second pass) — credit tier split

Ishmael normalized the alibaba credit tiers into canonical English tokens:
- `credit-low` (较弱)
- `credit-medium` (中等)
- `credit-ok` (良好)
- `credit-great` (优秀)
- `credit-missing` (not yet looked up)

**Previous shape:** single column `credit_rating` with the full Chinese string baked in (`信用优秀 (per ishmael 2026-06-20, alibaba.com credit rating)`).

**New shape:** two columns:
- `credit_tier` — canonical token (sortable, filterable, pill-colored in UI)
- `credit_source` — provenance string (e.g. `per ishmael 2026-06-20, alibaba.com`)

CSV backup of the prior shape at `~/srv/projects/pneumatic-wrist-leads/crm.csv.bak-credit-split-20260620`.

### Per-company tier assignments (per ishmael 2026-06-20, alibaba.com)

| Company | Tier | Notes |
|---|---|---|
| 深圳市智惠宇科技 (5 leads) | `credit-great` | 信用优秀 |
| 深圳市科威逊科技 (1 lead) | `credit-low` | 信用较弱 — flagged for manual review before NDA |
| 深圳市品创诺智慧电子 (1 lead) | `credit-missing` | not yet verified |
| 深圳市芭乐健康科技 (1 lead) | `credit-missing` | not yet verified |
| All other rows | `credit-missing` | empty string in csv, displayed as a muted gray pill |

### UI changes

Both `pneumatic-wrist-crm.html` and `stage2-verify.html` render the credit tier as a pill:
- `credit-great` — green (high trust, the target lane)
- `credit-ok` — blue
- `credit-medium` — yellow
- `credit-low` — red (a flag, not an auto-disqualify)
- `credit-missing` — muted gray (just means "not yet looked up")

The `credit_source` string shows as a tooltip on the pill so future-us can see where the value came from.

### Open question

The credit-low flag on 科威逊 is a known-but-not-actionable signal at this point — credit rating is one of many alibaba trust signals. Worth a manual alibaba.com look at the credit-history page (not the same as the contact card) to understand what triggered the 较弱 rating (e.g. recent complaint, low transaction volume, new seller). If the rating is from old history vs. recent activity changes the meaning significantly.

---

## 2026-06-20 (afternoon, third pass) — product links surfaced in the crm

Ishmael: "the crm should be updated so that all current entries also include links directly to the products".

The URL data was already in `website` (39/39 rows populated — L-rows use the 1688 offer detail URL, C/N-rows use the company product page). The issue was purely UI: the link column was 70px wide, hidden on mobile, and showed just "open ↗" with no context.

Added column: `product_link_label` (human-readable label for the link).
- L-rows: short product title from stage2_enriched.csv (matched via leads_clean.csv.original_id → stage2_enriched.offer_id), truncated to 28 chars.
- C/N-rows: company shortname (24 chars max).

The URL stays in `website`. The UI renders the label as the link text with the full offer title (or URL) as the hover tooltip. For 智惠宇 specifically, each of the 5 L-rows gets a distinct product name (P300pro / 跨境S25 / TK65 / s101 / 严选s101) so the CRM shows them as 5 distinct products at a glance rather than 5 identical-looking "open ↗" links.

CSV columns now: 18 total. Backup at `crm.csv.bak-pre-product-links-20260620`.

### UI changes (crm.html)

- Column renamed: "link" → "product link", widened from 70px to 240px (180px on mobile).
- Now visible on mobile (was hidden under @media max-width:900px).
- Hover tooltip = full product title (or URL for C/N rows).
- `max-width: 1700px` on the page wrapper so the wider column fits.
- Added a one-line note in the data-source section: "every row has a direct link to its product."

---

## 2026-06-20 (afternoon, fourth pass) — C/N-row review

Ishmael did a manual review of every stage-1 / non-1688 lead and called out the broken / no-watch entries.

### Removed from crm.csv (5 rows)

| lead_id | company | reason |
|---|---|---|
| C005 | XinRui Tech (新蕊科技) | website is an ifeng.com news interview, no actual product page |
| C010 | Huayi Medical (华奕医疗) | does not appear to have a smartwatch; the air-pump BP-watch URL 404s |
| N003 | Hengmicro / FitologyHealth (恒脉微海外品牌) | no watch product; fitologyhealth.com also does not load |
| N005 | Shenzhen Staranb Communication | no good, no blood pressure watch |
| N010 | Jamr | no good, no watch product |

**Result:** 39 → 34 active rows. Tier distribution: 18 t1, 3 t2, 1 t3, 12 disq.

### URL fixes in crm.csv (4 rows)

| lead_id | company | new URL |
|---|---|---|
| C003 | Wellue | `zh-cn.getwellue.com/.../具有心率和血压的智能血压手表` (corrected product-page path) |
| C006 | YunTian Smart Info | `http://www.ytznxx.com/yingwenwangzhan/Case/case_1/139.html` |
| N004 | Shenzhen Twinkler | `twinkler.en.alibaba.com/productgrouplist-938899374/Air_Pump_Blood_Pressure.html` (replaced the hktdc redirect with the alibaba air-pump BP category page) |
| N006 | Shenzhen Beimeikang | `https://www.beimeikang.com/cloc-medical/406.html` (replaced globalsources redirect) |

### Flagged in leads.csv (7 stage-1 entries, `stage1: no_watch_business`)

CurieJet (科瑞杰特), Hangmic (恒脉微), SunTech (顺泰医疗), Ti Hui Da Technology (深圳市蒂汇达科技), Sictech (西城微科), YW MEMS Suzhou (苏州研微), Hengmicro/FitologyHealth stage-2 entry. All pump/valve/sensor suppliers, no wearable end-product. Kept in leads.csv for audit trail.

### Implication for pump-supplier lane

5 of the 7 flagged entries (CurieJet, Hangmic, SunTech, Ti Hui Da, Sictech) are MEMS-pump / piezoelectric-actuator / BP-sensor suppliers. Ishmael's "no watch" signal is about the wearable end-product lane — but the MEMS pump technology is still on the table as a component for our internal BOM. **Recommend** a separate lane for MEMS-pump / piezo-actuator vendors if/when we need to source the pump component rather than buy a finished watch.

### Backups

`crm.csv.bak-cn-review-20260620` (39 rows, pre-removal). `leads.csv.bak-cn-review-20260620` (pre-flag).

---

## 2026-06-20 (afternoon, fifth pass) — crm lean-up rules

Ishmael's three rules + four more drops:

### Rule 1: drop all "Pass" rows

The prior passes kept dropped leads in `tier=DISQ, crm_stage=Pass` as an audit trail. Ishmael says no — the crm is for active outreach only. Dropped 12 rows:
- 华腾创宇 (Huateng, C009, GPS watches not BP)
- 龙汾科技 (Longfen, N009, PPG-based not air-pump)
- 小糖果 (L069), 智亿元 (L070+L079), 海川帆 (L083), 浩碧 (L072), 聚美戴 (L074), 伟锐达 (L076), 星翔创 (L071), 恒昇达 (L078), 宏伟冠 (L073) — all moved here in the 2026-06-20 per-product review (PPG-only / Huaqiangbei-clone, no air-pump).

The audit trail is preserved in `leads_clean.csv` notes and `stage2_research_log.md` (this file). The crm is now an outreach-only view.

### Rule 2: 1 row per company, not one row per product

Collapsed 智惠宇's 5 L-rows (L008/L024/L025/L051/L052) into a single row. The collapsed row's `lead_id` is the joined list (`L008 + L024 + L025 + L051 + L052`), `website` holds all 5 product URLs semicolon-separated, `product_link_label` holds all 5 product titles double-pipe-separated. The crm UI renders the multi-link case as a `<details>` block with one link per offer.

### Rule 3: drop bp sensor suppliers entirely

No-op — no pump/valve/sensor category rows currently in crm. The 7 stage-1 entries flagged as `stage1: no_watch_business` in the prior pass (CurieJet, Hangmic, SunTech, Ti Hui Da, Sictech, YW MEMS Suzhou, Hengmicro/FitologyHealth stage-2 entry) live in `leads.csv` only, never made it to crm.

### Rule 4: only watch-with-airbag in the crm

Stricter filter — every remaining row must have `bp_watch=yes` AND a `lead_category` indicating a watch product (wearable_odm, or solution_provider with a watch offering). Dropped 4 more:
- C017 数智明医 (Shuzhi Mingyi) — https://www.shuzhimingyi.com/ shows no products
- C019 奥极医疗 (AoJ Medical) — supply-chain reseller, arm-cuff BP not watch
- C020 美连医疗 (Med-Linket) — no watch
- N007 鑫之研 (Shenzhen Xinzhiyan) — just an alibaba redirect, no product page

### Net result

34 → **14 companies**, one row each, every row has `bp_watch=yes` and is a watch-with-airbag business.

### Final company list (top-down)

1. 智惠宇 (5 leads, S26 family OEM, credit-great) — lead_ids: L008 + L024 + L025 + L051 + L052
2. 玉成创新 (Ycaviation, C001)
3. 聚伟电子 (Juwey, C002)
4. Wellue (C003, corrected URL)
5. 格炎科技 (GY Smartwatch, C004)
6. 云天智能 (YunTian, C006, corrected URL)
7. 2026 K2 (C016 OEM air-pump BP watch, K2 model)
8. 星烁科技 (Twinkler, N004, corrected URL)
9. 北美康 (Beimeikang, N006, corrected URL)
10. 爱旺乐 (iWonlex, N008)
11. 科威逊 (L002, credit-low — flagged)
12. 品创诺 (L003, credit-missing)
13. 芭乐健康 (L023, credit-missing)
14. 优瑞恩 (Urion, N001, t2)

Backup: `crm.csv.bak-one-row-per-company-20260620` (34-row pre-collapse shape).

### Implication for stage2-verify.html

The page still drives off `stage2_promote_summary.csv` which is the per-company aggregation. The 4-company / 8-lead promote lane is unchanged. The new `crm.csv` and `stage2_promote_summary.csv` are aligned: 4 of the 14 crm rows have air-pump confirmations + L-row source data (智惠宇 / 科威逊 / 品创诺 / 芭乐), and they're exactly the same 4 companies as the promote lane.

---

## 2026-06-20 (afternoon, sixth pass) — crm trim: drop category + drop 智惠宇 green highlight

Two surgical changes per ishmael:

1. **Removed `lead_category` column** — all 14 remaining rows are `wearable_odm`, the column is redundant. Dropped from `crm.csv` (17 → 16 cols, backup at `crm.csv.bak-no-category-20260620`) and from the crm page UI (no header, no cell, no field in the JS col map, no filter placeholder mention).
2. **Removed green highlight on 智惠宇's row** — the `tr.priority-zhihuiyu` CSS class is gone from `pneumatic-wrist-crm.html`, as is the sort comparator that pinned 智惠宇 to the top of t1. 智惠宇 still appears at the top of the t1 list naturally (tier 1 + credit-great + highest confidence in the L-rows), but no special row class, no special sort order.

Result: 9 visible columns (stage / name / cn / conf / contact / owner / next / link / credit). 智惠宇's row is visually identical to every other t1 row except for the green `credit-great` pill in the credit column.

---
---

## 2026-06-22 — project folder cleanup

Deleted from `~/srv/projects/pneumatic-wrist-leads/` (backed up at `~/.openclaw/workspace/archives/2026-06-22-pwl-cleanup/srv-pneumatic-wrist-leads.tar.gz`):

- 7 backup snapshots: `crm.csv.bak-{20260620,cn-review-20260620,credit-split-20260620,no-category-20260620,one-row-per-company-20260620,pre-product-links-20260620}`, `leads.csv.bak-cn-review-20260620`. These were per-edit safety snapshots; the live files have since evolved past all of them.
- 4 scratch / superseded files: `smoke_test_raw.json`, `actor-input.json`, `TASK.md` (the original 2026-06-10 plan, fully executed), `apify_1688_spike.py` (first-run prototype, replaced by `apify_run.py` + `apify_enrich.py`).

### Hold + reject (folded here from csv, csvs deleted)

**stage2_hold.csv → 1 row, L050 深圳市华唯诺贸易有限公司:**

- P50气囊气泵式血压手环智能监测睡眠心率血氧体温计步呼吸率手表 — 1688 offer 678931499216
- Decision: trader_not_factory (not a manufacturer; reseller of someone else's design). Held for stage 3 only if we want a reseller for a non-OEM test batch.

**stage2_rejected.csv → 3 rows, all name-pattern rejects (sellers of 气囊/表带 *accessories*, not watches):**

- L056 广州市优伟家居用品有限公司 — 1688 offer 999377252675. Title: 「血压手表气囊华为血压智能手表气囊配件tpu血压监测手表双层气囊」. Pattern: sells the *气囊* strap/accessory, not the watch. Price ¥11, 30d sales 3.
- L066 广州市优伟家居用品有限公司 — 1688 offer 863467266800. Title: 「血压智能手表气囊配件双层单层运动手表tpu手腕表带气囊定制加工」. Same pattern — strap/accessory vendor.
- L068 隽业塑胶制品有限公司 — 1688 offer 791881634247. Title: 「0元拿样血压手表气囊双层运动手表血压计气囊tpu表带气囊定制加工」. 塑胶制品 = plastics; tpu表带气囊 = strap/accessory. Not a watch ODM.

All three flagged `stage2: name_pattern_reject`. Reason lives in the regex used during stage-2 classifier (offer title must indicate a *whole watch* containing the pump, not a *component* sold to watch assemblers).
