一键导入
purchase-order-processing
Process Purchase Orders and Bills of Material to generate priced Sales Orders
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Process Purchase Orders and Bills of Material to generate priced Sales Orders
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
GAIK Solution Configuration Wizard. Guides the user from a natural-language use-case description to a validated executable blueprint (JSON), a Mermaid workflow diagram, a standards-based BPMN 2.0 visual blueprint, a runnable PoC, and a use-case documentation suite. Collects the complete requirement set (with a completeness gate), reasons about each component's behaviour-changing options, selects GAIK components, generates and validates the blueprint, and saves all outputs to a user-chosen directory.
GAIK toolkit overview and reference. Use when needing context on GAIK components (extractors, parsers, transcribers, RAG, TTS, classifiers, pipelines), the repository structure, configuration pattern, environment variables, building-block API tables, the documentation update map, or the demo app and docs website setup. For CREATING a new component package use build-software-component; for ADDING EXAMPLES and running the canonical publish flow (docs → demo app → PyPI tag) use gaik-add-examples. Covers: structured data extraction, document parsing, audio transcription (Whisper/local), transcript enhancement, text-to-speech, RAG pipelines (pgvector/Chroma), document classification, end-to-end pipelines.
Audits the GAIK Solution Wizard's component registry, reference cards, and SKILL.md guidance against the installed gaik package, then proposes and applies the updates needed to keep them in sync. Use after changing gaik components (new component, renamed constructor/method, changed options, removed component, new install extra, new module) or after bumping the gaik version. Runs a deterministic introspection scan, classifies each finding, and edits only after you approve a change table.
Creates evaluation documentation for a GAIK component in both locations: evaluation_layer/eval_methods/{component}_eval/ (README + optional script stubs) and guidance_layer/website/content/docs/evaluation-layer/{component}-eval.mdx (full user-facing page). Also updates index.mdx and meta.json to register the new page.
Creates a use-case description page under guidance_layer/website/content/docs/use-cases/ following the established GAIK format (business layer → strategy → no-code → code-based → components → evaluation → resources). Accepts user-provided context and marks any missing sections as Coming Soon. Updates meta.json to register the new page.
Adds or updates working code examples for GAIK toolkit components and pipelines in implementation_layer/examples/. Use when adding a new example, demonstrating a feature, creating a usage sample, or showing how a building block or pipeline works. After the example is in place, offers optional follow-ups: update API docs (guidance_layer/docs/), update the Fumadocs website (guidance_layer/website/content/docs/), expose the feature in the demo app (toolkit_demo_app/api/routers + UI), and push a PyPI release tag. Covers software_components (extractor, parsers, transcriber, RAG, classifier, TTS, enhance_transcript, validators (LLMJudge / panel / pairwise / calibration), evaluators (ExtractionEvaluator, RAGEvaluator, BatchEvaluationRunner), form_understander, observability) and software_modules (AudioToStructuredData, DocumentsToStructuredData, RAGWorkflow, MultiSourceReportGenerator). Not for creating a brand-new component package — use build-software-component for that.
| name | purchase-order-processing |
| description | Process Purchase Orders and Bills of Material to generate priced Sales Orders |
Activate this skill when the user wants to:
Trigger phrases:
The user provides a folder path containing:
input_folder/
├── customer_data/ # REQUIRED: Customer documents
│ ├── PO.pdf # Purchase Order (required)
│ ├── BOM1.pdf # Bill of Materials (optional)
│ ├── BOM2.pdf # Additional BOMs as needed
│ └── ...
├── price_list/ # REQUIRED: Pricing information
│ └── price_list.xlsx # Master price list (or .csv)
│
└── sample_sales_order/ # OPTIONAL: Sample for format inference
└── sample_order.docx # (if not provided, use default text format)
| Parameter | Required | Description |
|---|---|---|
input_folder | Yes | Path to folder containing all input documents |
output_path | No | Where to save the sales order (default: input_folder) |
tax_rate | No | Tax rate to apply (default: from PO or 6%) |
include_fees | No | Whether to include cutting/testing/cert fees (default: true) |
On Windows, Claude Desktop + toolchains sometimes behave like they are in a POSIX shell, producing paths like /mnt/c/....
Meanwhile, your MCP servers may run native Windows Python, expecting C:\....
This mismatch can cause "file not found" or failing shell commands.
Prefer MCP filesystem tools for file/folder operations Use the filesystem server for listing and reading files instead of shell commands.
Avoid bash commands on Windows If you must run a command on Windows, prefer PowerShell.
Never assume the environment is Linux Treat the runtime as OS-ambiguous and enforce the above rules to stay stable.
Never do the following: NEVER run pip install, python -c, pdfplumber, or any ad-hoc parsing code for .pdf/.pptx/.xlsx.
NEVER use /mnt/user-data/uploads/... paths; only use paths returned by the MCP filesystem listing or the user-provided Windows folder.
If you are about to do any of the above, STOP and switch to the built-in PDF/PPTX/XLSX skills.
Execute these steps in order. Reference the files in reference/ folder for field definitions and customization options.
customer_data/ - Must exist and contain at least one PDF (the PO)price_list/ - Must exist and contain price list filesample_sales_order/ - Check if sample document existsOutput: Inventory of available files
If customer_data/ is missing or empty, stop and ask the user to add the source materials there.
Read the Purchase Order PDF from customer_data/ and extract all fields as defined in reference/EXTRACTION_FIELDS.md.
Extract:
See reference/EXTRACTION_FIELDS.md for complete field specifications, source locations, and required/optional status.
Output: Structured PO data with all extracted fields
For EACH Material_Number found in the PO line items:
customer_data/ for BOM filesBOM_ID matches Material_Numberreference/EXTRACTION_FIELDS.mdExtract:
See reference/EXTRACTION_FIELDS.md for complete field specifications, source locations, and required/optional status.
Decision Point:
Output: BOM data for each Material_Number, or flags for missing BOMs
Create enriched items by combining PO and BOM data:
FOR EACH PO Line Item:
MATCH WHERE: PO.Material_Number = BOM.BOM_ID
IF match found:
CREATE Enriched_Item with:
- Item_Number (from PO)
- Material_Number (from PO, validated against BOM)
- Type_Part_Designation (from BOM) ← CRITICAL for price lookup
- Dimensions (from BOM)
- Material_Grade (from BOM)
- Quantity (from PO)
- Unit (from PO)
- Delivery_Date (from PO)
- Weight_Per_Unit (from BOM)
ELSE IF PO contains Type/Part info:
CREATE Enriched_Item using PO data only
ELSE:
FLAG as "BOM Not Found - Manual Review Required"
| Check | Rule | Action if Failed |
|---|---|---|
| BOM Exists | BOM found for Material_Number | Flag for manual review |
| PO Reference | BOM.BOM_Customer_PO = PO.PO_Number | Warning - verify documents |
| Project Code | BOM.BOM_Project_Code = PO.Project_Code | Warning - verify documents |
| Status | BOM.BOM_Status = "Approved" | Flag if not approved |
Output: List of Enriched_Items ready for pricing
Read the price list from price_list/ folder and match each enriched item using the matching logic defined in reference/PRICING_RULES.md.
For EACH Enriched_Item:
See reference/PRICING_RULES.md for:
IMPORTANT: Never use the PO's unit prices. Always use the Price List prices.
Output: Priced_Items with all pricing fields assigned
Apply calculations as defined in reference/CALCULATION_LOGIC.md and reference/PRICING_RULES.md.
For EACH Priced_Item, calculate:
See reference/CALCULATION_LOGIC.md for detailed formulas, defaults, and examples.
Calculate the sum of all Material_Cost values across all items.
See reference/CALCULATION_LOGIC.md for calculation details.
Determine the applicable discount tier based on the material subtotal amount and apply the discount rate.
See reference/PRICING_RULES.md for complete discount tier table and rules.
Aggregate all fees (cutting, testing, certification), add shipping from PO, calculate tax on the taxable base, and compute the grand total.
See reference/CALCULATION_LOGIC.md for detailed formulas and tax rules.
Output: Complete pricing breakdown for all items and order totals
Create the Sales Order document using format from reference/OUTPUT_FORMAT.md.
sample_sales_order/sample_order.docx exists:
reference/OUTPUT_FORMAT.mdCreate the following sections as specified in reference/OUTPUT_FORMAT.md:
PRICING SUMMARY:
Generate pricing summary as specified in reference/OUTPUT_FORMAT.md (lines 82-93).
If sample_order.docx exists, extract and match its exact format. Otherwise, use the default format from OUTPUT_FORMAT.md.
CRITICAL CURRENCY FORMATTING REQUIREMENT: ALL currency values MUST include comma separators for thousands.
Requirements:
See reference/OUTPUT_FORMAT.md for:
SO-[number]_[Customer_Name]_[Date].[extension]
.docx extension if sample-based format was usedSee reference/OUTPUT_FORMAT.md for:
Output: Complete Sales Order document
The skill generates the following files:
Format: .docx
Filename: SO-{SO_Number}_{Customer_Name}_{Date}.[docx]
view /mnt/skills/public/docx/SKILL.md skill to generate the docx files.
Contents:
Format details: See reference/OUTPUT_FORMAT.md for complete specification.
Format: .txt (always plain text)
Filename: Calculation_Breakdown.txt
Contents:
Purpose: Helps users understand, verify, and audit the pricing logic.
reference/CALCULATION_BREAKDOWN_TEMPLATE.md for complete specification and customization options.User: "Process the purchase order in C:\Orders\Project-Q4" Action:
User: "Generate sales order from this PO - no BOMs needed" Action:
User: "Process order in C:\Orders\NewCustomer" Action:
User: "Generate sales order matching our company format" Action: