销售线索接入完整度与下一步优先包
1.0.1维护:保有限数字窗口原timedelta微秒舍入,用精确日期差判断,避免巨大窗口/极端日期裸异常;非有限数字列精确项目未知,不伪称已确认不紧急。时间组成先核验,排序用整数UTC微秒,所有动态展示(含匿名ID)命中注入时隐藏但JSON身份不改。完整规则见guide维护节。
小商家和 3-20 人团队最常卡住的地方,不是没有线索,而是每条新咨询进来后没有一处把事实、缺口和下一步按优先顺序摆清楚:需求写在聊天里、区域只在脑子里、截止时间没人记、预算空着被当成「没价值」、同意没确认就开始想话术。美国联邦储备银行 2026 Small Business Credit Survey 显示,57% 的小企业把「触达客户/增长销售」列为经营挑战;U.S. Bank 2026 调查显示 40% 的小企业已采用 CRM——需求真实,替代品也真实。所以本技能不做「线索评分」,只做一件确定的事:把匿名事实整理成一张可逐条人工复核的优先卡。
本技能读一份 JSON,输出人工复核优先卡——每条线索的六类状态、接入完整度、范围适配证据、缺失事实、时间冲突、拒绝字段、危险引用、注入标记、人工复核优先带、下一步准备卡、澄清问题、人工检查表、草稿(一律未发送)与 Markdown 优先卡。脚本只读一个本地 JSON,不联网、不写文件、不抓取线索、不读取 CRM/邮箱/私信、不自动联系、不自动淘汰客户、不承诺价格与交期、不使用受保护属性、不推断购买意愿。
输入与澄清
字段表、判定顺序与安全边界见 @references/guide.md(同目录 references/sample.json 是常规样例,八条线索覆盖六种状态;references/sample-blocked.json 是重复编号、非对象记录、个人信息、受保护属性、拒绝引用、注入与无同意的样例,两者输出分布固定)。
最少确认:as_of(必须带时区偏移)、business.business_id、business.timezone,以及每条线索的 lead_id。
必须问清的关键点:
as_of与business.timezone不能省。没有它们无法判断当前时点与时效,工具会停在INPUT_INCOMPLETE,而不是猜一个当前时间。- 只接受匿名事实。姓名、手机号、邮箱、账号、地址、Cookie、令牌等一律禁止:字段名或值命中时记
refused_fields,该线索判BLOCKED,工具不回显该内容。 - 不使用受保护属性。性别、年龄、民族、宗教、健康、残疾、婚姻、国籍、政治倾向等字段会被拒绝(
SENSITIVE_ATTRIBUTE),绝不参与任何判定或排序。 - 预算未提供不等于低价值。
budget_status: not_provided只记BUDGET_NOT_PROVIDED并进入澄清,不降级、不判低价值;工具没有「价值分」这个概念。 - 没有规则就保持未知。缺
qualification_rules记MISSING_QUALIFICATION_RULES,时效窗口与优先顺序不猜;范围匹配只用你在business里声明的范围事实。 - 没有区域不猜。线索缺
service_area时区域适配保持UNKNOWN并记MISSING_SERVICE_AREA;边界地区(如「徐汇区」与「上海市徐汇区」)记AREA_BOUNDARY_REVIEW,交人工复核。 OUT_OF_DECLARED_SCOPE不是拒客。它只是依据你显式范围的人工复核提示,是否跟进由人工决定。- 容量只是排队建议。
capacity.available_slots只用于给出队列位次,不构成任何交付、响应或时效承诺;缺失时不猜名额。 - 状态取最严重者。
BLOCKED>INSUFFICIENT_EVIDENCE>OUT_OF_DECLARED_SCOPE>WAITING_FOR_CONSENT>NEEDS_CLARIFICATION>READY_FOR_HUMAN_FOLLOWUP。 - 只在明确同意时生成草稿。
drafts恒为DRAFT_NOT_SENT;contact_consent不为true时不生成任何草稿,也绝不自动发送。 - 只给文件名,不要给路径或链接。
evidence_refs只接受单一文件名;含路径、链接或盘符的引用会被拒绝,输出里只保留安全化文件名,原引用不会回显。 - 不要填登录凭据。输入里出现密码、令牌一类字段或真实凭据形态的字符串会被整体拒绝,且不回显该内容。
执行
- 按 @references/guide.md 的字段表整理输入 JSON。第一次使用建议先用 @references/sample.json 跑一遍,确认输出结构后再换成自己的线索。
- 用 Python 3.9+ 执行本包脚本(无第三方依赖、不联网):
python3 "<skill-directory>/scripts/run.py" "<input.json>",Windows 可用py -3。 - 先看顶层
status:REJECTED表示输入疑似含凭据(已拒绝且未回显);INPUT_INCOMPLETE表示缺as_of/ 业务编号 / 时区;BLOCKED表示存在硬矛盾;GAPS_FOUND表示存在待补齐、证据不足或等待项;READY表示全部线索可进入人工跟进队列。 - 再看
project_state与status_counts:六个线索状态。 - 按
queue与每条leads[].priority_band逐条人工复核;优先带只由状态与时效推导,不是客户价值分。 - 按
scope_evidence与timeline_conflicts核对范围、区域与时间;按missing_facts与clarification_questions逐条追问;不要自行填数,也不要把缺失当成 0。 - 按
refused_fields删除个人信息 / 受保护属性字段后重跑;按refused_refs把引用改为单一文件名。 - 按
capacity_summary与within_capacity排人工队列(仅为建议,不是承诺)。 - 按
drafts(全部DRAFT_NOT_SENT)准备人工沟通;未同意者没有草稿,须先人工确认同意。 - 用
human_checklist完成复核,用human_confirm_items明确哪些决定必须由人工做。
运行约束
- 只读:只读取用户提供的那一个 JSON;不打开链接、不调用外部服务、不写文件、不访问任何 CRM、客服、邮箱或私信系统。
- 不自动执行:不抓取线索、不自动联系、不自动淘汰客户、不承诺价格/折扣/交期、不使用受保护属性、不推断购买意愿。
- 只推导不发明:结论只由输入中的明示匿名事实推导;不虚构范围规则、区域、时效窗口、预算或同意。
- 未知保持未知:缺预算不按低价值、缺区域不按范围内、缺规则不发明策略、缺同意不生成草稿、缺容量不猜名额。
- 状态门禁:六类状态固定聚合顺序;硬阻塞(非对象记录、重复编号、非法/倒置时间、个人信息、受保护属性)必须先人工修正。
- 同意门禁:
drafts恒为DRAFT_NOT_SENT;contact_consent不为true时不生成任何草稿。 - 确定性:线索按输入顺序、队列按
priority_band与声明的优先顺序稳定排序,同一输入输出逐字节一致。 - 文件名门禁:
evidence_refs只接受单一文件名;含路径、链接或盘符的引用被拒绝,且只输出安全化文件名,原引用在任何字段都不出现。 - 隐私门禁:字段名或值命中个人信息 / 受保护属性时只输出字段路径与原因,值不回显;字段名命中凭据名或值具备凭据形态时整体拒绝且不回显。
- 提示注入逐字段检测、位置精确、低误报:覆盖备注、业务范围、渠道、资格规则、容量时段与线索自由文本;命中时只加标记并在
injection_flagged中给出精确路径;检测要求「动作词 + 目标词」同句共现。 - 不可信文本先转义再入简报,命中即隐藏:
markdown_summary中所有自由文本走同一转义处理(去控制字符、折叠空白、对 Markdown 元字符加反斜杠);命中注入或被拒绝的字段改用固定占位文本。 - 免责:输出是线索接入整理的人工准备材料,不是资格判定、价值判定、报价或承诺;范围、区域、是否跟进、是否联系与合规必须由人工确认。