--- name: fit-portfolio description: 在实体与证据审计完成后,按本次任务目标、硬约束和适用判断项生成当前批次、累计企业组合、替补、排除与目标进度。仅在用户明确或确认优先标准时生成业务优先批次。用于首次编排、约束或关键来源变化后重算、继续下一批或复核现有清单;唯一写 TargetPortfolio,不改实体或证据。 --- # 园企适配与目标组合 将已审计候选转换为园区可以核验和推进的企业组合。先交付本批已满足资格与证据要求的候选,再按冻结的数量目标或覆盖要求继续。用户没有明确或确认优先标准时,只能使用透明、稳定的展示顺序并声明它不代表业务优先级;有优先标准时,排序才由本次目标、结构化判断和证据派生。任何情况下都不使用候选自报分数,也不包装成落地概率。 ## 前置条件 - 有有效 `ParkBrief` 和已冻结或可明确修订的 `TaskGoal`; - `TaskGoal` 由 `park-brief-builder` 冻结;本 Skill 只读该目标,不创建、补写或改写它; - 候选已完成实体归一; - 被冻结规则引用为资格、交付或完成关键项的主张有可回读证据;“关键”必须从 `TaskGoal / ParkBrief` 及其引用关系派生,不能采用候选或调用方自填的 `critical`; - 硬失败、冲突和未知已显式记录。 目标尚未冻结且存在会改变候选池的阻断未知时,返回最小阻断信息集合;能合并时合并,多个独立阻断项不能安全假设时如实询问或暂停,不宣布完成或市场短缺。 ## 企业资格底线 候选计入合格池前必须同时满足: 1. 法定主体真实、可区分且已去重; 2. 没有已证实的园区硬约束失败; 3. 与本次任务的目标条件相符; 4. 关键判断有可回读公开证据。 任何资格底线失败都不能用高软分抵消。需要渠道、公开入口和核验话术并不属于企业资格底线。 ## 按任务适用项判断 需要判断方法和示例时读取 `../../references/fit-and-portfolio.md`;需要降级和质量门时读取 `../../references/quality-and-degradation.md`。 从 `TaskGoal`、硬约束和覆盖要求中生成适用判断项。常见但非强制的判断项包括: - 产业或链节相关性; - 载体与工程条件; - 企业阶段与公开信号; - 园区资源交换价值; - 区域与供应链协同; - 商业和运营承接条件; - 证据强度、新鲜度与冲突; - 反证、未知和失效条件。 不要求全国所有任务写满固定清单。每个实质判断项写适用性、结论、理由和证据引用;不适用可明确标为 `not_applicable`,未知不得伪装成通过。用户已明确或确认优先标准时,对外可用“优先 / 可考虑 / 待观察”等通俗标签;否则只表达资格与证据状态,不暗示业务优先级。 ## 排序、批次与累计组合 1. 先排除硬失败和主体冲突; 2. 把冻结规则所需证据不足的对象放入观察池,不计入合格数量;候选自填 `critical=false` 不能隐藏缺口; 3. 同一法定主体只保留一行;一个主体可承担多个覆盖角色; 4. 当前批次只选择资格与证据底线通过的对象;存在用户明确或确认的优先标准时,再按该标准及其证据形成优先批次,否则使用透明稳定的展示顺序并声明它不代表业务优先级; 5. 批大小来自用户要求、园区团队处理能力或宿主展示能力,只控制交付节奏; 6. 不设产品级候选上限;用户要求的总数可跨任意多个批次完成; 7. 保留用户明确的数量关系:`exact` 达到 N 即停止且不得超出;`at_least` 达到下限并满足覆盖后停止,覆盖需要时可多于下限;`between` 达到下限并满足覆盖后停止且不得超过上限;`at_most` 只有同时存在正向覆盖条件时才可冻结,且不得超过上限;`none` 只按覆盖完成。范围只能来自用户,不自动生成;额外已核验企业放入内部替补,除非用户要求,不在前台擅自扩大交付; 8. 覆盖目标先选择能够满足要求的可行组合;同一企业可同时满足多项覆盖,但数量只计一次;多个可行组合之间,只有存在用户明确或确认的优先标准时才按业务优先比较,否则使用透明稳定的展示顺序; 9. 链节和角色只有写入 `TaskGoal.coverageRequirements` 时才是完成条件,否则只作组合诊断; 10. 关键来源删除、目标或硬约束变化时,只重算受影响对象和批次,并保留变化记录; 11. 首批交付后,只要目标未满足且仍有明确路径,就继续研究;用户反馈可调整排序,不是继续工作的授权门。 ## 行动准备与企业资格分开 行动准备度不决定企业是否适合园区。没有公开入口仍可进入合格池,但需标为待补并列出补充路径。 对已具备条件的候选,可按任务和证据选择建议渠道、公开入口、渠道理由、替代路径和客户运营顺序。渠道类型是可扩展目录,不由园区原型、规模或阶段强制映射;当前证据不足时允许 `primaryChannel=null`。 公开入口只用于人工核验和准备。证据页面与行动入口分别记录:项目、备案、环评、新闻、招聘等页面默认只能证明对应事实,不能因为可打开就成为联系、合作、申报或采购入口。行动入口必须与同一法定主体、本次建议渠道和具体 `public_entry_purpose` 共同闭合;用途不一致、短链未展开、重定向未核验或正文未回读时保持“待补”。`executionBoundary=prepared_not_contacted`;不得声称已触达、已建联、已报名、已回复或企业有意向。 ## 状态判断 任务状态必须相对冻结的 `TaskGoal` 判断: - `in_progress`:目标未满足,且仍有明确可执行路径; - `completed`:本任务适用的数量关系、覆盖、资格、逐项评估、交付要求和验收标准均满足; - `stopped_with_gap`:目标未满足,且冻结范围内已有可审计的穷尽证明; - `paused`:用户暂停、时间窗、预算检查点、搜索不可用、工具故障或目标信息缺失; - `superseded`:目标或关键约束被新版本取代。 暂停不是短缺。批次交付完成是否等于任务完成,只由冻结的 `TaskGoal` 决定,不能自动判为完成或未完成。时间或查询预算到点只能形成检查点和续作游标,不能单独证明市场无更多合格企业。 `stopped_with_gap` 必须附 `terminalProof`。开放互联网、尚可扩展的查询空间或调用方自报“已搜完”不能证明穷尽;只有用户绑定的封闭名单,或有受信来源版本、查询条件、分页/游标闭合、总量和回执的可枚举全集,才可能形成终止证明。真实全集可以为 0;此时“逐项审计空名单”可以完成,但带正向企业目标的找企任务只能报告目标缺口或暂停,不能伪造企业、查询或市场短缺。终止证明至少说明: ```text 未满足的目标要求 冻结的搜索范围与查询账本摘要 穷尽或饱和的证据 仍未解决的证据缺口 为何已不存在当前范围内可继续的方向 ``` 禁止: - 降低证据门; - 把观察池算作合格; - 重复集团、子公司或同一主体凑数; - 把一个批次当作总任务完成; - 把暂停、工具故障或预算到点写成市场短缺; - 用园区类型直接决定任务、客户策略或渠道。 ## 输出 `TargetPortfolio` 使用正式 Schema 所需的候选组合状态;其中可空、可选或不适用的集合保持真实为空,不为填表造内容。核心关系包括: ```text parkBriefRef taskGoal batchPolicy taskState deliveryBatches[] currentBatchRef cumulativeUniqueDeliveredCount countGoalAssessment coverageAssessments[] unmetRequirementRefs[] priorityCandidateIds[] qualifiedCandidates[] alternates[] watchlist[] excluded[] searchCoverage terminalProof pauseReason nextCursor continuationRequirements[] portfolioStrategy(仅有任务依据时) qualityGateReceipt nextBestAction(兼容投影,可为空) ``` 每个合格候选包含法定主体、与本次目标相关的适配判断、关键证据引用、反证/未知、行动准备度和后续核验建议。`performanceObservation` 由实际观察执行与可见交付的宿主/编排边界形成,本 Skill 不自报耗时或“已向用户可见”。普通聊天必须把机器状态翻译成业务中文,不直接展示字段名或枚举。 ## 写权与禁止 - 唯一写候选判断、最终适配、排序、批次、累计组合、目标评估和任务状态; - 不写 `ParkBrief` 或 `TaskGoal`,目标变化必须回到 `park-brief-builder` 形成新版本; - 不修改 `EntityRecord`、`SourceRecord` 或 `ClaimEvidenceLink`; - 不新增未审计企业; - 不把内部得分称为落地概率; - 不声称企业有真实意愿、预算或时间表; - 不执行外部动作; - 不把准备草稿写成已执行结果。 ## 停止 - 当前批次已交付并保存累计进度; - 若任务目标已满足,状态为 `completed`; - 若目标未满足且仍可继续,状态为 `in_progress` 并给出游标和下一批方向; - 若暂时中断,状态为 `paused` 并说明恢复条件; - 只有穷尽证明成立时,才可用 `stopped_with_gap`; - 若用户要文件,交给 `artifact-renderer`;否则直接聊天交付。