{ "name": "@vocmarket/tihao", "version": "1.0.19", "description": "Claude Code skill package for Tihao AI creator sourcing and Fmode image analysis: upload/read briefs, call VOC e-commerce proxy, analyze images with Doubao vision, rank creators, export business-ready blogger lists, and keep preference memory.", "type": "commonjs", "bin": { "tihao": "bin/tihao.js", "tihao-sourcing": "bin/tihao.js" }, "scripts": { "install:check": "node install.js --check", "install:smoke": "node install.js --smoke", "sample": "node mcp/src/tools/tihao-brief-sourcing-run.js --collection-mode sample --brief fixtures/sample-briefs/skincare-sample.md --output ../outputs/claude-code-tihao-sample --assistant-message-only", "fmode:image": "node mcp/src/tools/fmode-image-analysis.js", "fmode:image:smoke": "node scripts/fmode-image-analysis-smoke.js", "live": "node mcp/src/tools/tihao-brief-sourcing-run.js --collection-mode live --brief fixtures/sample-briefs/skincare-sample.md --output ../outputs/claude-code-tihao-live --keyword-limit 1 --pages-per-keyword 1 --assistant-message-only", "live:preflight": "node scripts/live-preflight.js", "live:acceptance": "node scripts/live-acceptance.js", "live:normalization:smoke": "node scripts/live-provider-normalization-smoke.js", "longrun:readiness": "node scripts/long-run-readiness-audit.js", "longrun:readiness:smoke": "node scripts/long-run-readiness-smoke.js", "local-seed-material:index": "node scripts/local-seed-material-index.js", "local-seed-material:index:smoke": "node scripts/local-seed-material-index-smoke.js", "local-seed-to-intake:worklist": "node scripts/local-seed-to-intake-worklist.js", "local-seed-to-intake:worklist:smoke": "node scripts/local-seed-to-intake-worklist-smoke.js", "experience-transcript:index": "node scripts/experience-transcript-index.js", "experience-transcript:index:smoke": "node scripts/experience-transcript-index-smoke.js", "real-gap:materials": "node scripts/real-gap-material-audit.js", "real-gap:materials:smoke": "node scripts/real-gap-material-audit-smoke.js", "evidence:index": "node scripts/evidence-index.js", "evidence:index:smoke": "node scripts/evidence-index-smoke.js", "preference-smoke": "node mcp/src/tools/tihao-preference-update.js --message \"客户更喜欢素人感、敏感肌真实记录,不要硬广和泛美妆号\" --memory ../outputs/claude-code-tihao-memory-smoke/tihao-preference-memory.json --assistant-message-only", "feedback:import": "node scripts/import-feedback-memory.js", "feedback:closure": "node scripts/feedback-loop-closure-audit.js", "feedback:closure:smoke": "node scripts/feedback-loop-closure-smoke.js", "review:metrics": "node scripts/review-metrics.js", "review:metrics:smoke": "node scripts/review-metrics-smoke.js", "manual-review:label-guide": "node scripts/manual-review-label-guide.js", "manual-review:label-guide:smoke": "node scripts/manual-review-label-guide-smoke.js", "skill:refs:smoke": "node scripts/skill-reference-readability-smoke.js", "customer-effect:audit": "node scripts/customer-effect-audit.js", "customer-effect:smoke": "node scripts/customer-effect-audit-smoke.js", "software:export": "node scripts/export-software-table.js", "software:markdown": "node scripts/export-software-markdown.js", "software:refresh": "node scripts/refresh-software-client-list.js", "software:smoke": "node scripts/software-table-smoke.js", "proof-gap:software-form": "node scripts/export-proof-gap-software-form.js", "proof-gap:software-form:smoke": "node scripts/export-proof-gap-software-form-smoke.js", "plan:consistency:smoke": "node scripts/plan-consistency-smoke.js", "plan:execution-status": "node scripts/plan-execution-status.js", "plan:execution-status:smoke": "node scripts/plan-execution-status-smoke.js", "hygiene:smoke": "node scripts/leak-mojibake-audit.js", "candidate-pool:smoke": "node scripts/candidate-pool-smoke.js", "history:audit": "node scripts/historical-dataset-audit.js", "history:from-csv": "node scripts/history-dataset-from-csv.js", "history:from-csv:smoke": "node scripts/history-dataset-from-csv-smoke.js", "history:audit:smoke": "node scripts/historical-dataset-audit-smoke.js", "case:import": "node scripts/case-template-import.js", "case:import:smoke": "node scripts/case-template-import-smoke.js", "platform:quality-rules:smoke": "node scripts/platform-quality-rules-smoke.js", "goal:compliance:smoke": "node scripts/goal-compliance-rules-smoke.js", "brief:patterns": "node scripts/generate-brief-rule-patterns.js", "brief:patterns:smoke": "node scripts/brief-rule-patterns-smoke.js", "fewshot:smoke": "node scripts/few-shot-cases-smoke.js", "pgy:schema": "node scripts/generate-pgy-schema.js", "pgy:schema:smoke": "node scripts/pgy-schema-smoke.js", "media:schema": "node scripts/generate-media-library-schema.js", "media:schema:smoke": "node scripts/media-library-schema-smoke.js", "data:intake-template": "node scripts/create-data-intake-pack.js", "data:intake-template:smoke": "node scripts/create-data-intake-pack-smoke.js", "intake:readiness": "node scripts/intake-readiness-audit.js", "intake:readiness:smoke": "node scripts/intake-readiness-smoke.js", "intake:field-checklist": "node scripts/intake-field-checklist.js", "intake:field-checklist:smoke": "node scripts/intake-field-checklist-smoke.js", "video:intake-template": "node scripts/create-video-intake-pack.js", "video:intake-template:smoke": "node scripts/create-video-intake-pack-smoke.js", "video:resource-readiness": "node scripts/video-resource-readiness-audit.js", "video:resource-readiness:smoke": "node scripts/video-resource-readiness-smoke.js", "optimization:status": "node scripts/optimization-status-audit.js", "optimization:status:smoke": "node scripts/optimization-status-smoke.js", "optimization:pipeline": "node scripts/optimization-pipeline.js", "optimization:pipeline:smoke": "node scripts/optimization-pipeline-smoke.js", "optimization:completion": "node scripts/optimization-completion-audit.js", "optimization:completion:smoke": "node scripts/optimization-completion-smoke.js", "handoff:summary": "node scripts/generate-optimization-handoff.js", "handoff:summary:smoke": "node scripts/generate-optimization-handoff-smoke.js", "proof-gap:request": "node scripts/generate-proof-gap-request.js", "proof-gap:request:smoke": "node scripts/generate-proof-gap-request-smoke.js", "proof-gap:closure": "node scripts/proof-gap-closure-audit.js", "proof-gap:closure:smoke": "node scripts/proof-gap-closure-smoke.js", "proof-gap:operator-pack": "node scripts/proof-gap-operator-pack.js", "proof-gap:operator-pack:smoke": "node scripts/proof-gap-operator-pack-smoke.js", "proof-gap:intake-bundle": "node scripts/real-proof-intake-bundle.js", "proof-gap:intake-bundle:smoke": "node scripts/real-proof-intake-bundle-smoke.js", "real-proof:work-order": "node scripts/real-proof-closure-work-order.js", "real-proof:work-order:smoke": "node scripts/real-proof-closure-work-order-smoke.js", "business-proof:progress": "node scripts/business-proof-progress.js", "business-proof:progress:smoke": "node scripts/business-proof-progress-smoke.js", "business-proof:next-actions": "node scripts/business-proof-next-actions.js", "business-proof:next-actions:smoke": "node scripts/business-proof-next-actions-smoke.js", "business-proof:next-actions:missing-proof:smoke": "node scripts/business-proof-next-actions-missing-proof-smoke.js", "business-execution:index": "node scripts/business-execution-index.js", "business-execution:index:smoke": "node scripts/business-execution-index-smoke.js", "latest-form:index": "node scripts/latest-form-index.js", "latest-form:index:smoke": "node scripts/latest-form-index-smoke.js", "round:refresh": "node scripts/refresh-round-artifacts.js", "round:refresh:smoke": "node scripts/refresh-round-artifacts-smoke.js", "round:deposition": "node scripts/round-deposition-audit.js", "round:deposition:smoke": "node scripts/round-deposition-smoke.js", "task:handoff-index:smoke": "node scripts/task-handoff-index-smoke.js", "feedback:smoke": "node scripts/feedback-import-smoke.js", "feedback:roundtrip": "node scripts/feedback-roundtrip-smoke.js", "sample-with-memory": "node mcp/src/tools/tihao-brief-sourcing-run.js --collection-mode sample --brief fixtures/sample-briefs/skincare-sample.md --memory ../outputs/claude-code-tihao-memory-smoke/tihao-preference-memory.json --output ../outputs/claude-code-tihao-memory-smoke/report --assistant-message-only", "mcp:start": "node mcp/src/server.js", "mcp:smoke": "node scripts/smoke-mcp.js", "smoke:package": "node scripts/smoke-package.js", "package:contents:smoke": "node scripts/package-contents-smoke.js", "smoke:briefs": "node scripts/brief-fixture-smoke.js", "hard-rules:smoke": "node scripts/hard-rules-smoke.js", "reference-rules:smoke": "node scripts/reference-rules-smoke.js", "platform:strategy:smoke": "node scripts/platform-sourcing-strategy-smoke.js", "acceptance:pm": "node scripts/product-acceptance-audit.js", "acceptance:providers": "node scripts/provider-contract-audit.js", "acceptance:providers:mock": "node scripts/provider-contract-audit.js --mock", "homepage:smoke": "node scripts/homepage-evidence-provider-smoke.js", "homepage:readiness": "node scripts/homepage-evidence-readiness-audit.js", "homepage:readiness:smoke": "node scripts/homepage-evidence-readiness-smoke.js", "acceptance:video-ab:smoke": "node scripts/video-hit-rate-audit-smoke.js", "acceptance:video-ab": "node scripts/video-hit-rate-audit.js", "overnight:quality": "node scripts/overnight-quality-campaign.js", "overnight:review:smoke": "node scripts/overnight-manual-review-smoke.js", "acceptance": "node scripts/acceptance.js", "publish:dry": "npm run acceptance && npm publish --dry-run --access public", "publish:npm": "npm run acceptance && npm publish --access public" }, "files": [ ".claude-plugin/", ".mcp.json", "bin/", "docs/", "fixtures/", "install.js", "mcp/", "memory-templates/", "package.json", "README.md", "scripts/", "skill-package-manifest.json", "skills/" ], "publishConfig": { "access": "public" }, "keywords": [ "claude-code", "tihao", "creator-sourcing", "blogger-list", "brief", "mcp", "voc-e-commerce" ], "dependencies": { "@modelcontextprotocol/sdk": "^1.29.0", "zod": "^4.4.3" }, "main": "install.js", "directories": { "doc": "docs" }, "author": "", "license": "ISC" }