fix(ui): 策略表单文案去路径与实现细节

前端占位与说明不写仓库路径与字段名;系统提示与规则底稿占位改为业务口径表述。

Made-with: Cursor
This commit is contained in:
hub-gif 2026-04-23 10:51:25 +08:00
parent 6faef2180e
commit 19c27fc4e8
3 changed files with 7 additions and 7 deletions

View File

@ -143,7 +143,7 @@ STRATEGY_SYSTEM = f"""你是市场策略顾问,根据**结构化监测摘要**
- 仍须遵守全局禁止编造:数字、品牌、店铺、用户原话、活动规则仅可来自输入依据;无依据处用假设语气。 - 仍须遵守全局禁止编造:数字、品牌、店铺、用户原话、活动规则仅可来自输入依据;无依据处用假设语气。
**决策边界(硬性)**: **决策边界(硬性)**:
- **当 `strategy_decisions_substantive` 为 true 时**:业务已在 `strategy_decisions` 中填写的项(角色、**本阶段策略目标类型**(`stage_goal_type`)、时间、成功标准、战场一句话、定位勾选、竞争倾向、四柱、目标客群/对标/资源备注、**营销策略**与**总体策略**等)视为**已定决策**:成稿须**落实为具体执行句**,**不得**改写成相反结论或再要求用户「请选择」。**若 `stage_goal_type` 非空**,「策略范围与前提」表中「本阶段策略目标类型」列须**直接采用该表述**(可略作语序润色),**不得**改判为另一类阶段目标。 - **当 `strategy_decisions_substantive` 为 true 时**:业务已在 `strategy_decisions` 中填写的项(角色、**本阶段策略目标类型**、时间、成功标准、战场一句话、定位勾选、竞争倾向、四柱、目标客群/对标/资源备注、**营销策略**与**总体策略**等)视为**已定决策**:成稿须**落实为具体执行句**,**不得**改写成相反结论或再要求用户「请选择」。**若「本阶段策略目标类型」在输入 JSON 中已给出非空文本**,「策略范围与前提」表中该列须**直接采用该表述**(可略作语序润色),**不得**改判为另一类阶段目标。
- **当 `strategy_decisions_substantive` 为 true** 而部分表单项仍为空或占位:结合监测摘要与节选**补全为可执行表述**,与数据方向一致。 - **当 `strategy_decisions_substantive` 为 true** 而部分表单项仍为空或占位:结合监测摘要与节选**补全为可执行表述**,与数据方向一致。
- **当 `strategy_decisions_substantive` 为 false 时**:适用上文「业务决策未填写时的成稿义务」,**禁止**以「请先填表」类表述搪塞全篇。 - **当 `strategy_decisions_substantive` 为 false 时**:适用上文「业务决策未填写时的成稿义务」,**禁止**以「请先填表」类表述搪塞全篇。
- **成稿阶段避免**:反复「请业务决策」;不确定时在 §2.1 用「类目/细类」+「假设:」「待业务确认:」**写清**,**禁止**只写泛化一句。 - **成稿阶段避免**:反复「请业务决策」;不确定时在 §2.1 用「类目/细类」+「假设:」「待业务确认:」**写清**,**禁止**只写泛化一句。

View File

@ -227,7 +227,7 @@ def build_strategy_draft_markdown(
scope_prelude = ( scope_prelude = (
[ [
"*回答:**这份策略是针对什么、在什么边界里做的**——属「立项靶心」,不是执行摘要。表单已填则写成短句;未填保留占位,**勿**编造。*", "*回答:**这份策略是针对什么、在什么边界里做的**——属「立项靶心」,不是执行摘要。表单已填则写成短句;未填保留占位,**勿**编造。*",
"*业务侧在动策略稿之前,应先对齐本节;可选目标类型见 `docs/planning/策略生成-框架确定.md`「启动前:须先明确的项」。*", "*业务侧在动策略稿之前,应先对齐本节;阶段目标类型以业务内部规划口径为准(若有)。*",
"", "",
] ]
if not for_llm_input if not for_llm_input
@ -240,9 +240,9 @@ def build_strategy_draft_markdown(
) )
sgt = _esc(d.get("stage_goal_type") or "").strip() sgt = _esc(d.get("stage_goal_type") or "").strip()
_goal_type_placeholder = ( _goal_type_placeholder = (
"待确认:可填如「A 心智占位 / B 转化爬坡 …」,见规划文档「目标类型选项」" "待确认:可填如心智占位、转化爬坡等业务阶段目标;与业务内部口径对齐"
if for_llm_input if for_llm_input
else "成稿从规划文档「目标类型选项」择一或组合,并与下列成功标准一致" else "成稿从业务侧阶段目标类型口径择一或组合,并与下列成功标准一致"
) )
_table_goal_type = _scope_cell(sgt, _goal_type_placeholder) _table_goal_type = _scope_cell(sgt, _goal_type_placeholder)
_summary_user_side = ( _summary_user_side = (
@ -362,7 +362,7 @@ def build_strategy_draft_markdown(
_goal_bullet( _goal_bullet(
"本阶段策略目标类型", "本阶段策略目标类型",
str(d.get("stage_goal_type") or ""), str(d.get("stage_goal_type") or ""),
"见规划文档「目标类型选项」或自填(如心智占位、转化爬坡)", "与业务内部阶段目标口径对齐,或自填(如心智占位、转化爬坡)",
), ),
_goal_bullet( _goal_bullet(
"目标客群", "目标客群",

View File

@ -317,7 +317,7 @@ watch(
<fieldset class="fieldset"> <fieldset class="fieldset">
<legend>策略范围与前提</legend> <legend>策略范围与前提</legend>
<p class="fieldset-hint"> <p class="fieldset-hint">
界定本次策略的任务边界与阶段目标。监测词、批次由任务自动带出;<strong>主推类目</strong>以顶部「矩阵细类」为准。角色、<strong>本阶段策略目标类型</strong>、战场、客群会进入策略稿开篇;目标类型填好后大模型不得擅自改判。并与下一栏「主要对标」衔接。 界定本次策略的任务边界与阶段目标。监测词、批次由任务自动带出;<strong>主推类目</strong>以顶部「矩阵细类」为准。角色、<strong>本阶段策略目标类型</strong>、战场、客群会进入策略稿开篇;目标类型填好后,成稿会按你的表述落实。并与下一栏「主要对标」衔接。
</p> </p>
<label class="fld"> <label class="fld">
<span>本品角色(策略服务对象)</span> <span>本品角色(策略服务对象)</span>
@ -332,7 +332,7 @@ watch(
<textarea <textarea
v-model="decisions.stage_goal_type" v-model="decisions.stage_goal_type"
rows="2" rows="2"
placeholder="由业务选定,如:A 心智占位 / B 转化与复购爬坡 / C 份额防守……详见仓库 docs/planning/策略生成-框架确定.md;填后大模型须落实,不得擅自改判" placeholder="如:心智占位、转化与复购爬坡、份额防守等(可与内部规划文档中的阶段目标类型选项对齐);不填则由系统在成稿中结合数据推断"
/> />
</label> </label>
<label class="fld fld-block"> <label class="fld fld-block">