Use this skill to turn historical quotation files and a new requirement document into a structured quotation draft. Prefer manually reasoned business-module estimation, explicit assumptions, and stable JSON output over a single total-price guess. Historical quotations should be used as reference only, and the current preferred day rate is 1200 RMB per person-day for manual business-module quotations.
Follow this decision order:
Do not estimate directly from an unreadable image. First convert the mind map into a text outline with modules, features, and notable dependencies.
Use this normalized structure:
Read references/quotation-data-model.md when you need the exact input and output shape.
Current OpenClaw migration mode: read references/openclaw-current-mode.md and reuse assets/quotation-mode.json when the user wants the current manually curated business-module quotation style.
When the task needs historical calibration, run:
python3 scripts/extract_docx_corpus.py \
--input-dir /Users/m1/Documents/price \
--output /tmp/quotation-corpus.json
This script extracts:
Use the corpus to find similar past quotations, common section layouts, and common delivery boundaries. Treat the historical documents as calibration data, not as exact truth to copy.
After the requirement is normalized, run:
python3 scripts/generate_quote_draft.py \
--input /path/to/requirement.md \
--project-name "项目名称" \
--vendor-name "深圳市小程序科技有限公司" \
--quote-date "2026-04-07" \
--tax-note "含税 1 个点普票" \
--corpus /tmp/quotation-corpus.json \
--sample-library assets/seed-quote-sample-library.json \
--profiles assets/seed-quote-calibration-profiles.json \
--rate-cards assets/seed-domain-rate-cards.json \
--output-md /tmp/quote.md \
--output-json /tmp/quote.json \
--output-docx /tmp/quote.docx
The generator currently produces:
The generator uses a hybrid estimation strategy:
If the result feels off, revise the normalized requirement, refresh the sample library, or adjust the generated line items instead of hiding the uncertainty.
If the user needs a client-facing quotation file, prefer generating DOCX in the same run by passing --output-docx.
Always check:
If the requirement is incomplete, still produce a draft, but add pending questions rather than silently guessing.
scripts/extract_docx_corpus.pyUse this script to mine historical quotation DOCX files under a directory and export a reusable JSON corpus.
scripts/generate_quote_draft.pyUse this script to convert a markdown requirement document into:
scripts/build_quote_sample_library.pyUse this script after refreshing the corpus to extract reusable pricing samples such as:
Example:
python3 scripts/build_quote_sample_library.py \
--corpus /tmp/quotation-corpus.json \
--output /tmp/quote-sample-library.json
Use the resulting sample library to calibrate later estimators, detect common price bands, or build project-type-specific rate cards.
scripts/build_quote_calibration_profiles.pyUse this script to compile the sample library into stratified calibration profiles by:
Example:
python3 scripts/build_quote_calibration_profiles.py \
--corpus /tmp/quotation-corpus.json \
--sample-library /tmp/quote-sample-library.json \
--output /tmp/quote-calibration-profiles.json
Use the generated profile file when you want calibration to distinguish between project types such as AI platforms, mini-program systems, app projects, or cross-border products.
scripts/build_domain_rate_cards.pyUse this script to compile domain-level rate cards for major project families such as:
Example:
python3 scripts/build_domain_rate_cards.py \
--corpus /tmp/quotation-corpus.json \
--sample-library /tmp/quote-sample-library.json \
--output /tmp/domain-rate-cards.json
Use the rate card file to:
scripts/render_quote_docx.pyUse this script when you already have a quote JSON payload and need a formal Word document.
Example:
python3 scripts/render_quote_docx.py \
--input-json /tmp/quote.json \
--output-docx /tmp/quote.docx \
--keep-html /tmp/quote.html
Implementation note:
.docx via macOS textutilreferences/quotation-data-model.mdRead this file when you need the normalized input contract, output contract, and pricing heuristics.
references/openclaw-migration.mdRead this file when the user asks how to migrate the workflow into OpenClaw or how to keep interfaces stable for a later system integration.
references/openclaw-workflow.mdRead this file when the user wants the OpenClaw workflow broken into concrete nodes, execution order, fallback behavior, or migration order.
references/validation-report.mdRead this file when the user asks how well the current system performs on real historical examples or what the next calibration targets should be.
assets/quotation-template.mdUse this template when you need a human-edited quotation shell or a baseline format for a later DOCX renderer.
assets/seed-quote-sample-library.jsonUse this as a seed dataset extracted from /Users/m1/Documents/price. It is useful for inspection, prototyping, and downstream OpenClaw migration, but it should be refreshable rather than treated as immutable truth.
assets/seed-quote-calibration-profiles.jsonUse this as the seed stratified rate-card layer built from the seed sample library. Prefer it over the flat sample library when the current project has a clear domain and channel signature.
assets/seed-domain-rate-cards.jsonUse this as the seed domain rate-card layer. It summarizes the median total project price and median category prices for each major project domain.
assets/openclaw-node-contracts.jsonUse this as the machine-readable contract sketch for an OpenClaw implementation. It describes the primary nodes, their inputs, and their outputs.
Prefer this sequence when doing real work with the skill:
Keep runtime logic lightweight:
python3 plus standard libraryThe final response to the user should usually include:
共 1 个版本