mirror of
https://github.com/primedigitaltech/market-assistant.git
synced 2026-07-21 23:41:39 +08:00
fix(strategy): 价位阵地归入第八章,与「为什么选品牌」解耦
底稿第四章仅保留承诺与信任;贴顶/卡腰等勾选移至 §8.2。前端表单项并入战术支柱分组;补充测试与 OpenAPI、规划表说明。 Made-with: Cursor
This commit is contained in:
parent
42caa06013
commit
44fa291eb3
@ -466,13 +466,14 @@ def build_strategy_draft_markdown(
|
||||
if for_llm_input
|
||||
else ["- *(成稿:评价、配料、可核验表述边界。)*", ""]
|
||||
),
|
||||
"**主定位(与表单一致)**",
|
||||
"",
|
||||
f"- {_pos_mark(pos, 'top')} **贴顶**:中高位或头部价位带。",
|
||||
f"- {_pos_mark(pos, 'mid')} **卡腰**:围绕中位数一带。",
|
||||
f"- {_pos_mark(pos, 'entry')} **下探**:贴近区间下限。",
|
||||
f"- {_pos_mark(pos, 'different')} **另起带**:规格/组合/服务差异化。",
|
||||
"",
|
||||
*(
|
||||
[]
|
||||
if for_llm_input
|
||||
else [
|
||||
"*本节写**用户为何信任、为何愿意选这个品牌**(承诺、证据、合规边界);**价位阵地**(表单勾选的四类取向)见 **§8.2 定价策略**,勿混写。*",
|
||||
"",
|
||||
]
|
||||
),
|
||||
]
|
||||
)
|
||||
|
||||
@ -672,6 +673,13 @@ def build_strategy_draft_markdown(
|
||||
"",
|
||||
"### 8.2 定价策略",
|
||||
"",
|
||||
"**价位阵地取向(表单勾选;与监测价带可对读)**",
|
||||
"",
|
||||
f"- {_pos_mark(pos, 'top')} **贴顶**:中高位或头部价位带。",
|
||||
f"- {_pos_mark(pos, 'mid')} **卡腰**:围绕中位数一带。",
|
||||
f"- {_pos_mark(pos, 'entry')} **下探**:贴近区间下限。",
|
||||
f"- {_pos_mark(pos, 'different')} **另起带**:规格/组合/服务差异化。",
|
||||
"",
|
||||
f"- *(表单价格支柱:{_pillar_cell(pr)})*",
|
||||
"",
|
||||
"### 8.3 促销与活动策略",
|
||||
|
||||
@ -100,6 +100,13 @@ class StrategyDraftTests(SimpleTestCase):
|
||||
self.assertIn("**总体策略**:先腰后顶", md)
|
||||
self.assertIn("- [x] **卡腰**", md)
|
||||
self.assertIn("- [ ] **贴顶**", md)
|
||||
i4 = md.find("## 四、为什么要选")
|
||||
i5 = md.find("## 五、与其它品牌")
|
||||
self.assertGreater(i5, i4)
|
||||
self.assertNotIn("贴顶", md[i4:i5])
|
||||
i82 = md.find("### 8.2 定价策略")
|
||||
self.assertGreater(i82, 0)
|
||||
self.assertGreater(md.find("- [x] **卡腰**"), i82)
|
||||
self.assertIn("侧翼切入", md)
|
||||
self.assertIn("做低糖配方", md)
|
||||
self.assertIn("### 7.1 品牌建设", md)
|
||||
|
||||
@ -70,7 +70,7 @@ paths:
|
||||
description: Not found
|
||||
patch:
|
||||
tags: [jobs]
|
||||
summary: 仅更新 report_config(报告关注词/场景/外部市场表等)
|
||||
summary: 仅更新 report_config(外部市场表等;预设关注词/场景已废弃的请求字段将被忽略)
|
||||
parameters:
|
||||
- $ref: "#/components/parameters/JobId"
|
||||
requestBody:
|
||||
@ -367,23 +367,9 @@ components:
|
||||
ReportConfig:
|
||||
type: object
|
||||
description: |
|
||||
允许键仅限下列三项;可全部省略或 `{}` 表示使用脚本内置默认。
|
||||
允许键以后端 ``validate_report_config_body`` 为准(含各 ``llm_*``、``chapter8_text_mining_probe*``、``external_market_table_rows`` 等)。
|
||||
已废弃:``comment_focus_words``、``comment_scenario_groups``、``llm_scenario_group_summaries``(请求中若出现将被忽略)。
|
||||
properties:
|
||||
comment_focus_words:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
comment_scenario_groups:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
label:
|
||||
type: string
|
||||
triggers:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
external_market_table_rows:
|
||||
type: array
|
||||
items:
|
||||
@ -533,7 +519,7 @@ components:
|
||||
positioning_choice:
|
||||
type: string
|
||||
enum: ['', 'top', 'mid', 'entry', 'different']
|
||||
description: 价格带主定位;空字符串表示文稿中四项均为未勾选
|
||||
description: 价位阵地取向(贴顶/卡腰/下探/另起带),写入策略稿「八、战术支柱 · 8.2 定价策略」;与「四、为什么要选这个品牌」(承诺与信任)分离。空字符串表示文稿中四项均为未勾选
|
||||
competitive_stance:
|
||||
type: string
|
||||
enum: ['', 'flank', 'head_on', 'both', 'undecided']
|
||||
|
||||
@ -99,11 +99,11 @@
|
||||
| 1 | **一、顾客是谁** | 1.1 人群与路径 · 1.2 细类/评论侧归纳 · 1.3 本品聚焦(表单:角色、客群、对标) |
|
||||
| 2 | **二、产品价值与用户痛点** | **仅 §2.1** 表:「类目/细类 → 痛点简述 → 动作 → 落地 → 验证」;多细类**分行**,不确定则「待业务定类」+ 假设 |
|
||||
| 3 | **三、为什么要买「这款产品」** | **仅 §3.1** 品类与时机、购买理由;**无 §3.2**(与 §二 不重复写障碍与应对) |
|
||||
| 4 | **四、为什么要选「这个品牌」** | 承诺与调性 · 信任与证据 · 主定位(表单勾选) |
|
||||
| 4 | **四、为什么要选「这个品牌」** | 承诺与调性 · 信任与证据(**价位阵地**不在本章,见 **§8.2**) |
|
||||
| 5 | **五、与其它品牌有何不同** | 对比对象 · 差异化 · **竞争应对须写可执行应对**(不主动价格战 / 跟价时如何说明等) |
|
||||
| 6 | **六、阶段目标与路径** | 时间 / 成功标准 · **营销与总体策略须写成动作句**(与痛点挂钩) |
|
||||
| 7 | **七、品牌四线** | 建设 · 打造 · 运营 · 体验(与表单 4P 支柱对应,**每条线至少一条「怎么做」**) |
|
||||
| 8 | **八、战术支柱** | 产品 / 定价 / 促销 / 渠道:**每支柱下写 针对哪条痛点、做什么、怎么落地** |
|
||||
| 8 | **八、战术支柱** | **§8.2 定价**含**价位阵地取向**(表单贴顶/卡腰/下探/另起带勾选)与定价支柱叙述;其余:产品 / 促销 / 渠道:**每支柱下写 针对哪条痛点、做什么、怎么落地** |
|
||||
| 9 | **九、风险、假设与待验证** | 含表单风险勾选 |
|
||||
| 10 | **十、下一步与节奏** | 含业务备注;**下一步**为可执行任务,非口号 |
|
||||
| 11 | **附录** | 关键数据一览(与 brief 同源) |
|
||||
|
||||
@ -240,7 +240,7 @@ watch(
|
||||
。<strong>已填项</strong>写入底稿并由大模型落实;<strong>未填项</strong>可由大模型结合监测数据推断(仍受「禁止编造」约束)。
|
||||
</p>
|
||||
<p class="hint-top hint-flow">
|
||||
<strong>与成稿目录对齐</strong>(对应下载策略稿 Markdown):「策略范围与前提」→「摘要」→「一、顾客是谁」→「二、针对痛点要怎么做」(主要由数据与模型归纳)→「三~八、购买理由 / 品牌 / 竞品 / 阶段路径 / 品牌四线 / 战术支柱」→「九、风险」→「十、下一步」→「业务约束与备注」→「附录」。下方表单按<strong>同一条目顺序</strong>分组,便于逐项填写。
|
||||
<strong>与成稿目录对齐</strong>(对应下载策略稿 Markdown):「策略范围与前提」→「摘要」→「一、顾客是谁」→「二、针对痛点要怎么做」(主要由数据与模型归纳)→「三、为什么要买这款产品」→「四、为什么要选这个品牌」(承诺与信任;底稿占位为主)→「五~七、竞品 / 阶段路径 / 品牌四线」→「八、战术支柱」(含<strong>价位阵地</strong>勾选与 4P)→「九、风险」→「十、下一步」→「业务约束与备注」→「附录」。第四章叙事本页不设表单项;<strong>贴顶/卡腰等价位取向</strong>归入第八章定价,见下方「战术支柱」分组。
|
||||
</p>
|
||||
|
||||
<div class="toolbar">
|
||||
@ -345,19 +345,6 @@ watch(
|
||||
</label>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="fieldset">
|
||||
<legend>四、为什么要选「这个品牌」— 主定位</legend>
|
||||
<p class="fieldset-hint">对应成稿「<strong>四、为什么要选这个品牌</strong>」中与价位带相关的定位勾选。</p>
|
||||
<label class="fld fld-block">
|
||||
<span>主定位(选一条)</span>
|
||||
<select v-model="decisions.positioning_choice" class="job-select full">
|
||||
<option v-for="o in positioningOptions" :key="o.value || 'empty'" :value="o.value">
|
||||
{{ o.label }}
|
||||
</option>
|
||||
</select>
|
||||
</label>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="fieldset">
|
||||
<legend>五、与其它品牌有何不同 — 竞争倾向</legend>
|
||||
<p class="fieldset-hint">对应成稿「<strong>五、与其它品牌有何不同 · 竞争应对</strong>」。</p>
|
||||
@ -397,15 +384,27 @@ watch(
|
||||
<fieldset class="fieldset">
|
||||
<legend>七 · 八、品牌四线与战术支柱(4P)</legend>
|
||||
<p class="fieldset-hint">
|
||||
对应成稿「<strong>七、品牌四线</strong>」与「<strong>八、战术支柱</strong>」(产品 / 定价 / 渠道与传播)。
|
||||
对应成稿「<strong>七、品牌四线</strong>」与「<strong>八、战术支柱</strong>」。其中<strong>价位阵地</strong>(贴顶/卡腰/下探/另起带)写入 <strong>§8.2 定价策略</strong>,回答的是「在什么价位带上打」,不是「用户为什么选这个品牌」——后者在第四章由承诺、证据与调性承载(底稿占位,可由大模型补全)。
|
||||
</p>
|
||||
<label class="fld fld-block">
|
||||
<span>产品</span>
|
||||
<textarea v-model="decisions.pillar_product" rows="2" placeholder="产品侧动作或差异(可选)" />
|
||||
</label>
|
||||
<label class="fld fld-block">
|
||||
<span>定价</span>
|
||||
<textarea v-model="decisions.pillar_price" rows="2" placeholder="价格与价值呈现(可选)" />
|
||||
<span>价位阵地(选一条)</span>
|
||||
<select v-model="decisions.positioning_choice" class="job-select full">
|
||||
<option v-for="o in positioningOptions" :key="o.value || 'empty'" :value="o.value">
|
||||
{{ o.label }}
|
||||
</option>
|
||||
</select>
|
||||
</label>
|
||||
<label class="fld fld-block">
|
||||
<span>定价(战术支柱 · 补充叙述)</span>
|
||||
<textarea
|
||||
v-model="decisions.pillar_price"
|
||||
rows="2"
|
||||
placeholder="除价位阵地外,价格与价值呈现、跟价原则等(可选)"
|
||||
/>
|
||||
</label>
|
||||
<label class="fld fld-block">
|
||||
<span>渠道与触点</span>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user