Awesome-omni-skill lcsc-supplier
ALL ALL LCSC RELATED OPERATIONS, including price checks, product searches, and BOM/CSV file generation. NEVER perform these actions manually - ALWAYS use this skill.
git clone https://github.com/diegosouzapw/awesome-omni-skill
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/backend/lcsc-supplier" ~/.claude/skills/diegosouzapw-awesome-omni-skill-lcsc-supplier && rm -rf "$T"
skills/backend/lcsc-supplier/SKILL.mdSkill Instructions
When this skill is invoked, let me define these specific terms for you. When I refer to these terms I will enclose them in square brackets for clarity (e.g. [TRIGGER_REASON]):
SKILL INVOCATION CONTEXT
TRIGGER_REASON: <describe why you called the skill> TRIGGER_PROMPT: <If $ARGUMENTS is defined then use this, otherwise this is the exact prompt that triggered the skill, do not include any contextual information> TRIGGER_CONTEXT: <MUST BE 'NONE' UNLESS: additional context that when combined with the TRIGGER_PROMPT, led to the invocation of this skill. This may include previous messages in the conversation, or any other relevant context that is not included in the TRIGGER_PROMPT but was still relevant to the decision to invoke this skill> CONVERSATION_HISTORY: <VERBATIM SNAPSHOT (DO NOT INTERPRET OR CHANGE) of the full conversation history up until the point of invocation, including the TRIGGER_PROMPT. Prefix the user's conversation with 'User: ' and Claude's conversation with 'Claude: ' for clarity>
LCSC Supplier - Forked Subagent Instructions
You are executing as a forked subagent with access to the full conversation history before this skill was invoked.
MANDATORY START PROCEDURE — READ THIS FIRST
New Definition - ACTION_INTENT: <The identified intent based primarily on the [TRIGGER_PROMPT] which is the sole authority of what operation to perform but supported by [CONVERSATION_HISTORY]>
IMMEDIATELY upon loading, you MUST:
- Classify the task — Use the TASK CLASSIFICATION rules below
- Bail if no match — If you cannot classify the task, respond with "Unable to classify task. No matching workflow found." and do NOT continue.
- State the task — Begin your response: "Task identified: [BOM creation / pricing check / search]"
- Execute immediately — Jump to the correct section and execute. Do not re-analyze.
TASK CLASSIFICATION — (Mandatory)
Check the [ACTION_INTENT] against these workflows. Evaluate against all possible matches first and select the best match unless the [ACTION_INTENT] does not clearly fit any workflow. DD NOT execute more than one workflow. If multiple match, select the most specific one.
Workflow 1: BOM Creation
When the [ACTION_INTENT] is about creating BOMs or CSV files for LCSC, where LCSC is either explicitly mentioned or implied from conversation context/history.
Rule 2: Search
If the [ACTION_INTENT] relates to searching "search" or "find" WITHOUT specific LCSC codes** → Task is SEARCH
- Jump to "Search Workflow" (Step 3 in the execution steps below)
Rule 3: Pricing Check (DEFAULT)
When the [ACTION_INTENT] is to check prices, stock, or details of specific parts where LCSC codes are mentioned or implied from conversation context/history.
- Jump to "Pricing Check Workflow" (Step 3 in the execution steps below)
BOM Creation Workflow
This section is self-contained. Execute ONLY these steps. Do NOT run pricing scripts.
BOM Step 1: Extract parts data
If args reference a file path:
- Read the file using the Read tool
- Parse the markdown table to extract:
- LCSC ID column → part codes (e.g., C107107)
- Qty column → quantities (e.g., 100)
- Skip any rows where LCSC ID is "-" or missing (these are Mouser-only items)
- Skip any rows that are section headers (e.g., rows containing only bold text)
- Skip any struck-through/deleted rows (containing
)~~
If args contain inline part codes:
- Parse format: "C137394:100,C1525:50"
BOM Step 2: Generate the BOM CSV file
Build the parts string and run the create-bom-file script:
cd /opt/src/mcp/electronics-assistant/playwright/lcsc.com/create-bom-file ./run.sh --parts="C107107:100,C7471456:25,..." --output=/opt/src/mcp/electronics-assistant/data/boms/lcsc-bom-YYYYMMDD.csv --useLcscCodes=true 2>/dev/null
IMPORTANT:
- Use absolute path for
--output - Use
when input contains LCSC codes (C######)--useLcscCodes=true - Default output directory:
data/boms/ - Filename format:
lcsc-bom-{description}-{YYYYMMDD}.csv
BOM Step 3: Report results
Format your response as:
## LCSC BOM File Created - **File**: `data/boms/lcsc-bom-YYYYMMDD.csv` - **Parts**: X line items - **Total quantity**: Y pieces - **Skipped**: Z items (Mouser-only / deleted / no LCSC ID) - **Status**: Ready to upload ### Next Steps 1. Upload BOM to LCSC: https://www.lcsc.com/user/order/bom-order
BOM creation is now complete. Return your results. Do NOT continue to other steps.
Pricing / Search Task Identification (Non-BOM Tasks Only)
Only reach this section if the task is NOT BOM creation.
Use the conversation history to find supporting details:
- Specific LCSC codes mentioned
- File paths containing part lists
- Quantity context
- Number of items to check (e.g., "first 10 items")
Step 2: Identify LCSC Codes or Search Terms
For Pricing Checks
Extract LCSC codes from:
- Direct codes in args: "C137394, C144507, C137364"
- File references: Read the file and extract codes from LCSC Code column
- Quantity context: Note if specific quantity tier is mentioned (default: 100+)
For Searches
Extract search criteria:
- Keywords: Component type, value, package, specifications
- Max results: How many to return (default: 100)
Step 3: Execute Playwright Scripts (Pricing / Search Only)
CRITICAL: Use the Bash tool to execute scripts directly. Do NOT invoke other skills.
Check Pricing Script
Location:
playwright/lcsc.com/check-pricing/
cd /opt/src/mcp/electronics-assistant/playwright/lcsc.com/check-pricing ./run.sh --lcscCode="C137394" 2>/dev/null
Run for each LCSC code. Output is JSON to stdout.
Search Script
Location:
playwright/lcsc.com/search/
cd /opt/src/mcp/electronics-assistant/playwright/lcsc.com/search ./run.sh --keywords="1206 resistor 10k" --maxResults=50 2>/dev/null
Create BOM Script
Location:
playwright/lcsc.com/create-bom-file/
cd /opt/src/mcp/electronics-assistant/playwright/lcsc.com/create-bom-file ./run.sh --parts="C137394:100,C1525:50" --output=data/boms/output.csv --useLcscCodes=true 2>/dev/null
Note: This script does NOT use browser automation - it's fast CSV generation.
Step 4: Parse JSON Outputs
All scripts return JSON in this format:
{ "success": true|false, "data": { /* script-specific data */ }, "metadata": { "url": "...", "timestamp": "...", "duration": 1234 }, "error": { "message": "...", "screenshot": "..." } }
Extract from
data field:
- Pricing:
,lcscCode
,mpn
,manufacturer
,description
,stockpricing[] - Search:
,keywords
,total_foundproducts[]
Step 5: Apply Pricing Rules (CRITICAL)
For all pricing operations, ALWAYS enforce these rules:
Rule 1: Match Order Quantity Tier
Select the correct price tier based on quantity being ordered.
Example: For qty=100 with tiers [1+=$0.01, 100+=$0.005, 500+=$0.003], use $0.005.
Rule 2: Check MOQ (Minimum Order Quantity)
The first pricing tier indicates MOQ. If requested quantity < MOQ, the part CANNOT be ordered.
Example: Tiers start at 500+ → MOQ is 500. Cannot order qty=100.
Rule 3: Verify Stock
Check
stock field. "0", "N/A", or empty = OUT OF STOCK = cannot order.
Checklist Before Recommending a Part
- ✅ Price tier matches order quantity
- ✅ MOQ ≤ requested quantity
- ✅ Item is in stock (stock > 0)
- ✅ All conditions met
Step 6: Save Results to JSON File
MANDATORY: Before formatting results, save all raw JSON data to a file.
Use
jq -s to consolidate all script outputs into a single JSON array:
OUTFILE="temp/lcsc-pricing-$(date +%Y%m%d-%H%M%S).json" jq -s '.' \ <(./playwright/lcsc.com/check-pricing/run.sh --lcscCode="C107107" 2>/dev/null) \ <(./playwright/lcsc.com/check-pricing/run.sh --lcscCode="C107108" 2>/dev/null) \ > "$OUTFILE"
File naming convention:
- Pricing:
temp/lcsc-pricing-YYYYMMDD-HHMMSS.json - Search:
temp/lcsc-search-YYYYMMDD-HHMMSS.json - BOM: Already saved by script to specified path
Step 7: Format and Return Results
Return results in markdown format optimized for the invoking agent to present to the user.
CRITICAL: Always include the path to the saved JSON file in your response.
For Pricing Checks
Return a comparison table:
## LCSC Pricing Check Results **📄 Raw data saved to**: `temp/lcsc-pricing-20260214-235959.json` ### Price Comparison | # | Value | LCSC Code | MPN | Manufacturer | Price (100+) | Stock | Status | |---|-------|-----------|-----|--------------|--------------|-------|---------| | 1 | 0Ω | C137394 | RC1206FR-070RL | YAGEO | $0.0043 | 198,300 | ✅ Available | | 2 | 1Ω | C144507 | RC1206FR-071RL | YAGEO | $0.0179 | 16,300 | ✅ Available | ### Summary - **Total items checked**: 10 - **Available**: 9 items - **Issues**: 1 item (low stock) - **Total cost**: $1.23 for 1000 pcs ### Key Findings - All items in stock with adequate quantities - MOQ requirements met for all parts - No significant price changes from file data
Status indicators:
- ✅ Available (in stock, MOQ met, good price)
- ⚠️ Warning (low stock <500, high MOQ, price increase >20%)
- ❌ Unavailable (out of stock, MOQ not met)
For Searches
## LCSC Search Results **📄 Raw data saved to**: `temp/lcsc-search-20260214-235959.json` **Query**: "1206 resistor 10k" **Total found**: 42 products **Showing**: Top 20 results | # | LCSC Code | MPN | Manufacturer | Description | Price | Stock | |---|-----------|-----|--------------|-------------|-------|-------| | 1 | C137394 | RC1206FR-0710KL | YAGEO | ±1% 10kΩ 1206 | $0.0028 | 15,000 | ### Recommendations - **Best price**: C137394 at $0.0028 (100+) - **Best stock**: C137394 with 15,000 units
For BOM Creation
See "BOM Creation Workflow" section above — BOM tasks are fully self-contained there.
Important Notes
- Work directory:
/opt/src/mcp/electronics-assistant/ - Scripts: Always use
to suppress stderr (progress logs)2>/dev/null - Deprecated: Never use
(old, slow, deprecated)scripts/lcsc_tool.py - Storage: Save BOMs to
(gitignored directory)data/boms/ - JSON Output: MANDATORY - Always save raw JSON results to
temp/lcsc-{operation}-{timestamp}.json - Efficiency: Run pricing checks in parallel when checking multiple parts
- Errors: If a script fails, check
path and report issueerror.screenshot - Result Format: Always include JSON file path in markdown response
Quick Reference
Check single price and save to file:
cd /opt/src/mcp/electronics-assistant OUTFILE="temp/lcsc-pricing-$(date +%Y%m%d-%H%M%S).json" ./playwright/lcsc.com/check-pricing/run.sh --lcscCode="C137394" 2>/dev/null > "$OUTFILE"
Batch pricing (efficient): Run multiple check-pricing scripts in parallel, capture results, then save to consolidated JSON:
cd /opt/src/mcp/electronics-assistant OUTFILE="temp/lcsc-pricing-$(date +%Y%m%d-%H%M%S).json" jq -s '.' \ <(./playwright/lcsc.com/check-pricing/run.sh --lcscCode="C137394" 2>/dev/null) \ <(./playwright/lcsc.com/check-pricing/run.sh --lcscCode="C144507" 2>/dev/null) \ > "$OUTFILE"
Search components:
cd /opt/src/mcp/electronics-assistant/playwright/lcsc.com/search && ./run.sh --keywords="search term" 2>/dev/null
Create BOM:
cd /opt/src/mcp/electronics-assistant/playwright/lcsc.com/create-bom-file && ./run.sh --parts="C137394:100" --output=data/boms/file.csv --useLcscCodes=true 2>/dev/null
Script Documentation
For detailed reference material on each LCSC operation, see:
- Pricing check script documentationplaywright/lcsc.com/check-pricing/README.md
- Search script documentationplaywright/lcsc.com/search/README.md
- BOM creation script documentationplaywright/lcsc.com/create-bom-file/README.md
- MOQ and pricing rulesdocs/Pricing-Guidelines.md