BP目标体系全面审计工具:对BP进行五大板块审计——基础合规性审计、向上对齐审计、向下承接审计、GAP 差异分析、数值对齐审计。 覆盖结构完整性、内容质量、逻辑自洽、对齐正确性、承接覆盖率、数值定义与算法、上下级差异识别等维度。 内置数据查询能力,当用户需要对BP目标体系进行系统性审计诊断时使用。
本文件提供 能力宪章 + 能力树 + 按需加载规则。详细审计规则见 references/,使用示例见 examples/。
当前版本: v3.5 (Write Support for Child KR/Action)
接口版本: 所有业务接口统一使用 /open-api/bp/* 前缀,自带 appKey Header 鉴权,不依赖网关。
问题与建议对齐:每次审计输出问题清单时, 必须同时输出对应的修改建议(Action/Recommendation)。严禁只抛出问题而不给方案。
灵活的向上承接:
内容穿透要求:虽然允许创新,但组织 BP 必须确保上级下达的任务在下级有明确 ID 承接。
权重强制原则:所有审计输出(无论是组织还是个人 BP) 必须包含建议权重(提供初始建议值)。即便系统中权重字段为空,也必须根据战略重要性给出建议权重。
为了确保审计深度符合管理要求,审计时必须根据被审计对象的类型(组织 vs. 个人)应用差异化规则:
核心逻辑:组织 BP 是战略承接的载体。
输出要求:必须包括 BP 内容检查、向上对齐审计、向下承接审计、修改建议、建议权重(仅提供初始值)。
目标命名:必须是“组织状态”的静态定格(如: XX中心年度营收目标已达成)。
审计深度 (必检):
核心逻辑:个人 BP 是岗位职责与贡献的承诺。
输出要求:必须包括 BP 内容检查、向上对齐审计、修改建议、建议权重(仅提供初始值)。
目标命名:必须是“个人承诺状态”的静态定格(如: 本人负责的XX项目交付已完成)。
审计深度 (必检):
#板块说明规则文档1基础合规性审计BP 本身信息检查:结构完整性、内容质量、逻辑自洽性references/quality-rules.md2向上对齐审计我和上级的承接:对齐正确性、对齐完整性、人员匹配references/upward-check-rules.md3向下承接审计下级跟我的承接:承接正确性、完整性、数值覆盖、协作约束references/downward-check-rules.md4GAP 差异分析拉通上下级差异:承接差、执行差、逻辑差references/gap-analysis-rules.md5数值对齐审计从“提数字”到“定义数字”:数值定义、属性、算法、关联场景references/numerical-audit-rules.md
检查点说明严重等级结构完整性必须包含 G-R-A 三层结构,层级深度符合组织要求严重内容质量描述是否具体、可衡量、有明确行动指向一般逻辑自洽KI 是否能推导出 KR 的达成,KR 是否能验证 Goal 的完成严重衡量标准 SMARTKR 衡量标准是否满足 SMART + 最小完备要求严重汇报周期举措周期 ≤ KR周期 ≤ 目标周期一般举措颗粒度举措是否具体可执行、可承接一般语义定义目标禁动词、KR 描述可验收状态、举措描述具体行动一般必填项完整责任人/承接人、起止时间、汇报周期是否填写严重
检查点说明严重等级对齐正确性完整结构是否支撑上级意图(严禁只看名称)严重衡量标准支撑KR 衡量标准能否支撑上级要求的达成严重行动方向一致KI 行动方向是否与上级意图吻合一般人员匹配下级目标责任人 = 上级举措承接人严重对齐完整性是否存在选择性承接 or 职责盲区严重层级正确性对齐路径是否符合层级规则(中心→集团KR,部门→中心KI,员工→部门KI)严重
仅在有下级数据( 向下承接 非空,即 Markdown 中非 向下承接:无)时执行。
检查点说明严重等级承接正确性下级目标完整结构是否正确承接本级任务严重承接身份匹配上级举措承接人 = 下级目标责任人严重承接完整性核心任务是否有人承接,是否存在悬空严重多承接协作多部门承接时交付物边界是否明确一般冗余性是否存在不合理的重复承接轻微数值指标覆盖数值类指标口径一致性和覆盖率严重
检查点说明严重等级承接差上级核心要求是否在本级和下级中层层衰减严重执行差下级汇总能力/指标是否足以支撑本级目标达成严重逻辑差上下级之间是否存在口径不一或理解断层一般数值 GAP数值类指标上下级差异量化分析严重能力 GAP非数值类能力要求的覆盖缺口一般
检查点说明严重等级数值定义是否明确了数值的业务边界与口径(含税/币种/范围)严重数据属性是否明确数值是原始产出还是计算结果一般底层算法计算结果类数值是否提供了清晰的数学公式(A+B-C)严重数据来源是否指定了验收数值的数据源系统(SAP/CRM/人力等)一般关联场景是否明确了指标的对冲关系及应用场景(预警/考核)一般
数据查询和受控写入通过 scripts/bp-audit/bp_api.py 执行,默认输出 Markdown 格式( --format md)。
脚本调用方式(从工作区根目录执行):
bash
python3 .cursor/skills-v3/bp-audit/scripts/bp-audit/bp_api.py <action> [options] --format md
--format md为推荐默认用法,将 API 返回的 JSON 转为紧凑 Markdown 自然语言,可节省 67-80% 的 token。仅在需要原始 JSON 结构时使用--format json。
action说明必填参数可选参数get_all_periods查询所有 BP 周期列表无--name``get_group_tree获取某周期下的分组树( 数据量极大,500KB+,仅在搜索无果时兜底使用)--period_id``--only_personal``get_task_tree获取某分组下的目标/KR/举措树--group_id无get_goal_detail获取目标详情(含所有 KR 和举措)--task_id无get_key_result_detail获取关键成果详情(含所有举措)--task_id无get_action_detail获取关键举措详情--task_id无search_task按名称模糊搜索任务--group_id、 --name无search_group按名称模糊搜索分组--period_id、 --name无add_key_result根据目标 ID 新增下级关键成果--goal_id、 --name其他字段见下方写入说明add_action根据成果 ID 新增下级关键举措--key_result_id、 --name其他字段见下方写入说明
text
周期 (Period) ← 如"2026年BP",顶层时间维度
└─ 分组 (Group) ← 树形结构,分为组织分组(org)和个人分组(personal)
└─ 目标 (Objective)
└─ 关键成果 (Key Result)
└─ 关键举措 (Action)
get_all_periods → 找到目标周期的 ID(若用户未指定周期,选 status=1 的启用周期)
定位分组(按优先级选择,严禁无脑拉全量树):
优先:若用户给了 group_id → 直接使用,跳过搜索
优先:若用户给了分组名称 → search_group 按名称模糊搜索(轻量,通常 <5KB)
group_id层级编码 等区分信息(Markdown 搜索结果表中的列),让用户选择后再继续兜底:仅当搜索无结果且用户未指定任何分组信息时 → get_group_tree 获取完整分组树( 注意:此接口返回数据量极大,可达 500KB+,严重消耗 token,非必要不调用)
定位任务(同样优先搜索):
优先:若用户给了 task_id → 直接使用,跳过搜索
优先:若用户给了任务名称 → search_task 按名称模糊搜索
task_id分组、 编号 等区分信息(Markdown 搜索结果表中的列),让用户选择后再继续兜底:仅当搜索无结果时 → get_task_tree 获取任务树再定位
根据任务类型调用对应详情接口:
get_goal_detail(返回含所有 KR 和举措的完整信息)get_key_result_detail(返回含所有举措的完整信息)get_action_detail输入完整性规则(强制):
parseInt 或 Number 转换脚本使用规则(强制):
.py 脚本用 python3 执行。 严禁混用解释器。openapi/bp-audit/api-index.md 获取完整入参说明。search_group / search_task 模糊搜索定位,严禁直接调用 get_group_tree 拉取全量分组树。 get_group_tree 返回数据量极大(500KB+),严重浪费 token,仅在搜索无结果时作为最后兜底手段。--format md,将 JSON 转为紧凑 Markdown,节省 67-80% token。仅在用户明确需要原始 JSON 时才使用 --format json。add_key_result / add_action 只能在用户明确要求“新增/补充下级成果或举措”时调用,严禁在审计过程中擅自创建任务。当用户明确要求直接修改 BP、补写内容、补充下级任务时,可使用以下两个写入接口:
add_key_result
POST /bp/task/v2/addKeyResult--goal_id、 --nameadd_action
POST /bp/task/v2/addAction--key_result_id、 --name常用可选参数:
--rule_type--required_index--plan_start_date--plan_end_date--owner_ids--owner_dept_ids--collaborator_ids--copy_to_ids--supervisor_ids--observer_ids--upward_task_id_list--weight--description--measure_standard--action_plan--upload_sp_file_dtos--body_json字段规则:
--owner_ids "1001,1002"--upload_sp_file_dtos 传 JSON 数组字符串--body_json 可直接传原始 JSON 对象;若与显式参数同时提供,显式参数覆盖同名字段默认假设:用户通常不给 ID,只给周期、组织/人员节点、目标或成果名称线索。skill 必须先自行定位 ID,再执行写入。
goal_id)get_all_periods 确认 period_idsearch_group --period_id ... --name ... 定位 group_idsearch_task --group_id ... --name ... 定位目标任务type = 目标id 作为 goal_idget_goal_detail --task_id <goal_id> 复核上下文后,再执行 add_key_resultkey_result_id)period_idgroup_idsearch_task --group_id ... --name ... 搜索任务type = 关键成果id 作为 key_result_idget_key_result_detail --task_id <key_result_id> 复核当前成果及已有举措,再执行 add_actionsearch_group 无结果:提示用户补充更准确的节点名称;只有完全无法搜索时才允许 get_group_treesearch_task 无结果:允许调用 get_task_tree --group_id ... 手动在树里定位推荐执行顺序:
get_goal_detail 或 get_key_result_detail 复核父任务上下文示例:
bash
python3 .cursor/skills-v3/bp-audit/scripts/bp-audit/bp_api.py add_key_result \
--goal_id "2014631829004374017" \
--name "新增 Q2 业绩增长点" \
--measure_standard "新增签约客户数 >= 20" \
--plan_start_date "2026-04-01" \
--plan_end_date "2026-06-30" \
--format md
bash
python3 .cursor/skills-v3/bp-audit/scripts/bp-audit/bp_api.py add_action \
--key_result_id "2014631829004374018" \
--name "拓展三线城市分销商" \
--measure_standard "签约 10 家以上" \
--owner_ids "1234567890123456789" \
--format md
bash
# 用户不给 ID 时的完整链路示例:先找 group_id,再找 goal_id,最后新增 KR
python3 .cursor/skills-v3/bp-audit/scripts/bp-audit/bp_api.py search_group \
--period_id "<period_id>" \
--name "华东销售一部" \
--format md
python3 .cursor/skills-v3/bp-audit/scripts/bp-audit/bp_api.py search_task \
--group_id "<group_id>" \
--name "年度收入目标已达成" \
--format md
python3 .cursor/skills-v3/bp-audit/scripts/bp-audit/bp_api.py add_key_result \
--goal_id "<goal_id>" \
--name "新增渠道收入增长点" \
--format md
在输出审计报告前,必须检查以下 6 项:
[编码优先]:表格中是否全部使用 fullLevelNumber(如 A8B8-1)作为唯一标识?严禁显示原始数据库 ID。
[权重补全]:即便 API 返回权重为 0 或空,是否已根据战略意图在 Weight 列给出建议初始值?
[对象覆盖]:
[静态事实]:是否对所有含动词的目标/KR 给出了“已完成”状态的修改建议?
[穿透深度]:是否对组织 BP 的每一个 KI 执行了“向下承接”记录核验?
[修改位置]:How (Action) 列是否明确指出了修改位置(目标/成果/举措)?
获取启用周期:调用 get_all_periods,筛选 status=1 的启用周期
定位分组或目标( 搜索优先,严禁默认拉全量树):
task_id 或 group_id → 直接使用search_group 模糊搜索定位(轻量高效); 若返回多个结果,必须列出区分信息让用户确认,禁止自行猜测search_group 定位分组,再通过 search_task 定位目标; 同样,多个结果必须让用户确认get_group_tree( 此接口数据量极大,是最后兜底手段)根据审计入口获取完整数据:
get_goal_detail(返回含所有 KR 和举措的完整信息)get_key_result_detailget_action_detail关键数据字段(Markdown 输出中的呈现):
向上对齐:向上对齐的上级任务列表(如 - 向上对齐(N项): 下的列表,每项含名称、 [分组名] 和 id)向下承接:向下承接的下级任务列表(如 - 向下承接(N项): 下的列表,格式同上)人员:参与人列表,含角色(如 - 人员:张三(责任人), 李四(承接人))**衡量标准**:KR 特有的衡量标准(加粗呈现)周期:汇报周期(在 状态:xx | 周期:xx | 时间:xx 行中,格式如 month+20)时间:计划时间区间(在同一行中,格式如 2026-01-01 ~ 2026-12-31)核心原则:审完一个板块,立即输出该板块的审计结果,不要等全部审完再一次性输出。只执行意图路由决定的板块,不多不少。
用户应该能看到报告在一段一段地生成,而不是等很久后突然全部出现。
拿到审计数据后, 立即先输出 报告标题和审计对象信息(审计范围要体现实际执行的板块):
text
# XX 2026年度BP 审计报告
## 审计概要
- 审计对象:...
- 审计范围:基础合规性审计(板块一) ← 根据实际执行板块填写
- (评分和总结留到最后补充)
references/quality-rules.mdreferences/upward-check-rules.mdreferences/downward-check-rules.mdreferences/gap-analysis-rules.mdreferences/numerical-audit-rules.md所有已执行板块输出完毕后,输出:
为什么要流式输出:
报告精确引用规则与表格规范(强制):
报告中 严禁使用笼统描述,必须精确到具体对象。以下为硬约束:
必须包含建议权重:即便系统未配置,也必须给出权重建议值(Initial Value)。
必须包含任务编码:通过 bp_api.py 获取的 fullLevelNumber 必须出现在表格中。
表格列定义:
Object ID/Name:编码 + 名称。Weight:建议权重百分比。Status:🔴/🟡/🟢 状态。Why:具体审计理由(板块一至板块五的合并结论)。How:具体修改动作(Action/Location)。输出格式规范示例:
Object ID / NameWeightStatusWhyHow (Action / Location)G-1「构建集团战略绩效体系」35%🔴[严重] 语义红线: 目标含过程动词“构建”; 向下承接: KI A8B8-1.2.3 悬空(无下级承接 ID)。[修改] 改为「集团战略绩效体系已建成运行」;指派专员李四承接 KI 1.2.3。KR G-1.1「AI 催办机制落地」-🔴**[严重] 数值定义:** 缺少数据源系统和算法逻辑; 向上对齐: 与中心目标 2031-1 匹配度一般。[修改] 补充数据源(CRM)及 10% 提升算法。
反面示例(严禁出现在报告中):
正面示例(报告应达到的精确度):
[严重] KR G-1.1「2026年度收入达成131.23亿」责任人为空,无法追溯考核[严重] KR G-1.3「投资收益达成X亿」→ 下级仅3项承接([XX中心]、[YY中心]、[ZZ中心]),缺少[AA中心]的投资收益承接[一般] 目标 G-1「集团2026年度财务目标」使用了动词"达成",应改为「2026年度集团财务目标已达成」[紧急] 为 KR G-1.1「年度收入达成131.23亿」指定责任人(建议:CFO张三)建议工作流(简版):
SKILL.md 与 common/*,明确能力范围与约束。references/ 中的审计规则文档。examples/bp-audit/README.md 执行审计流程。意图路由与加载规则(强制):
references/ 规则文档。用户意图关键词执行板块需要的数据"检查BP质量"、"写得对不对"、"合不合规"仅板块一本级数据"向上对齐"、"承接关系对不对"、"和上级对齐了没"板块一 + 板块二本级 + 上级数据"下级承接"、"下面接得怎么样"板块一 + 板块三本级 + 下级数据"GAP分析"、"差距"、"拉通上下级"板块一 + 板块二 + 板块三 + 板块四本级 + 上级 + 下级数据"数值审计"、"数字对齐"、"穿透数字"板块一 + 板块五本级数值数据"全面审计"、"完整审计"、"全部检查"板块一 + 板块二 + 板块三 + 板块四 + 板块五全量数据未明确指定必须追问用户 想检查哪些方面,不得默认全跑
宪章(必须遵守):
SKILL.md 只描述"能做什么"和"去哪里读",不写具体审计规则。SKILL.md + common,只有触发审计时才加载 references/ 和 examples/。模块路由与能力索引(合并版):
用户意图(示例)模块能力摘要规则文档示例模板审计BP基础合规性/检查BP质量bp-audit结构完整性、内容质量、逻辑自洽、SMART、周期、颗粒度、语义./references/quality-rules.md``./examples/bp-audit/README.md审计向上对齐/检查承接关系bp-audit对齐正确性、完整性、人员匹配、层级正确性./references/upward-check-rules.md``./examples/bp-audit/README.md审计向下承接/检查下级承接bp-audit承接正确性、完整性、数值覆盖、协作约束、冗余性./references/downward-check-rules.md``./examples/bp-audit/README.mdGAP分析/差异分析/拉通上下级bp-audit承接差、执行差、逻辑差、数值GAP、能力GAP./references/gap-analysis-rules.md``./examples/bp-audit/README.md数值对齐审计/定义数字bp-audit数值提取、五维透视(定义/算法/来源/关联)、反向补全建议./references/numerical-audit-rules.md``./examples/bp-audit/README.md全面审计/完整审计bp-audit五大板块全量审计./references/*.md``./examples/bp-audit/README.md
能力树(实际目录结构):
text
bp-audit
├── SKILL.md
├── common
│ ├── auth.md
│ └── conventions.md
├── openapi
│ └── bp-audit
│ └── api-index.md ← 8 个审计所需接口索引
├── examples
│ └── bp-audit
│ └── README.md
├── scripts
│ └── bp-audit
│ └── bp_api.py ← 数据查询脚本(8 个 action)
└── references
├── quality-rules.md ← 板块一:基础合规性审计规则
├── upward-check-rules.md ← 板块二:向上对齐审计规则
├── downward-check-rules.md ← 板块三:向下承接审计规则
├── gap-analysis-rules.md ← 板块四:GAP差异分析规则
└── numerical-audit-rules.md ← 板块五:数值对齐审计规则