28 KiB
权限治理输出模板
本文只提供 permission_governance workflow 的用户可见输出模板。默认先给简短摘要;只有用户要求完整表格、需要写入确认,或结果大到需要结构化展示时才读取本文。
目录
输出策略Semantic Rendering定位与治理动作单目标公开性判断多目标明确列表诊断审计摘要容器安全诊断报告摘要可操作风险清单治理选择交互权限设置清单访问复核清单整改 dry-run批量权限申请确认owner 转移确认确认请求最终摘要
输出策略
- 单目标默认输出审计摘要。
- 多目标明确列表默认输出逐目标诊断摘要;不要因为目标数大于 1 就套用容器递归发现报告。
- 用户可见结论默认跟随用户当前语言。用户用中文提问时输出中文,用户用英文提问时输出英文;混合语言时跟随主要语言。
- 单目标公开性判断默认输出业务表达,不直接展示
link_share_entity、external_access_entity、external_access等底层字段名;只有用户要求 raw evidence、排障,或完整清单 / artifact 场景才展示底层字段。 - 中文用户可见输出中,
permission_public/public permission默认译为“文档公共访问和协作权限设置”;可在摘要里简称“公共访问与协作设置”。它在官方语义中包含链接分享、对外分享、协作者管理、复制内容、创建副本、打印、下载和评论;具体可判断字段以当前 CLI schema 和实际响应为准。只有命令名、schema 字段、raw evidence、排障信息和完整 artifact 字段名保留英文原文。 - 容器目标默认输出安全诊断报告摘要:一句话结论、覆盖情况、风险分级、优先处理对象、建议下一步和剩余限制。
- 容器目标不要把风险按数量机械排序;外部公开、允许对外分享、缺失密级标签优先于复制 / 下载 / 评论这类依赖策略的候选项。
- 用户没有提供明确 policy 时,使用“候选风险 / 待复核 / 待策略确认”,不要写“违规 / 已泄露 / 已外部访问”。
- 容器安全诊断里不要把
external_access=true/external_access_entity=open简写成“高风险”或“外部泄露”;用户可见说法应为“允许对外分享,需 owner 复核;这不等于已经存在外部协作者”。 - 风险对象展示按规模渐进披露:1-10 个全部展示;11-30 个展示全部高优先级待复核对象,中 / 低优先级只做分组摘要;31-100 个按高优先级待复核分组展示 Top 5 和数量;100+ 个只展示分组统计和 Top 样例。
- 当摘要未展示全部风险对象时,必须明确“完整清单包含 条”,并提供生成 Markdown / CSV / 飞书文档风险清单或整改 dry-run 的下一步。
- 只要发现需要处理的对象,最终回复必须给出可执行下一步 CTA。不能因为默认只读,就只报告风险后结束。
- 完整风险清单是后续治理选择的输入;Markdown / CSV / 飞书文档报告必须使用同一套字段和稳定
risk_id。 - 写入前必须使用确认模板;权限申请、文档公共访问和协作权限设置修改、owner 转移、密级标签更新分别确认。
- 最终回复必须包含已完成事项、验证结果和剩余限制;异步权限申请审批不能表述为已完成授权。
Semantic Rendering
面向用户的主结论优先渲染 per_target_permission_assessment 中的语义状态,并使用用户当前语言;底层字段名只在 raw evidence、排障或完整清单中保留。下表给出字段值到业务表达的标准映射;其他语言应表达同等业务含义。
字段来源边界:下表同时覆盖官方 OpenAPI 语义和当前 / 未来 CLI schema。只有实际响应或当前 schema 返回的字段和值,才可渲染为确定状态;当前 installed CLI 未返回的字段(例如 copy_entity、manage_collaborator_entity、external_access_entity)或未出现的枚举值,只能在 raw response / schema 实际出现时使用,缺失时必须按 unknown / unsupported 处理,不要臆造。
| Raw field / value | Semantic State | 中文说法 | English phrasing |
|---|---|---|---|
link_share_entity=anyone_readable |
link_access=public_readable |
互联网上获得链接的任何人可阅读 | Anyone on the internet with the link can read |
link_share_entity=anyone_editable |
link_access=public_editable |
互联网上获得链接的任何人可编辑 | Anyone on the internet with the link can edit |
link_share_entity=partner_tenant_readable |
link_access=partner_readable |
关联组织内知道链接可读 | People in partner tenants with the link can read |
link_share_entity=partner_tenant_editable |
link_access=partner_editable |
关联组织内知道链接可编辑 | People in partner tenants with the link can edit |
link_share_entity=tenant_readable |
link_access=tenant_readable |
公司内知道链接可读 | People in the tenant with the link can read |
link_share_entity=tenant_editable |
link_access=tenant_editable |
公司内知道链接可编辑 | People in the tenant with the link can edit |
| link sharing empty / disabled | link_access=closed |
未开启链接分享 | Link sharing is disabled |
external_access_entity=open or external_access=true |
external_sharing=open |
允许分享到组织外;不等于已经存在外部协作者 | External sharing is open; this does not mean external collaborators already exist |
external_access_entity=allow_share_partner_tenant |
external_sharing=partner_only |
仅允许分享到关联组织 | Sharing is allowed only with partner tenants |
external_access_entity=closed or external_access=false |
external_sharing=closed |
当前不允许分享到组织外 | External sharing is disabled |
invite_external=true |
external_invitation=enabled |
当前允许邀请外部用户 | Inviting external users is enabled |
invite_external=false |
external_invitation=disabled |
当前不允许邀请外部用户 | Inviting external users is disabled |
share_entity=anyone |
collaborator_org_scope=all_viewers_or_editors |
所有可阅读或可编辑者可查看、添加、移除协作者 | All viewers or editors can view, add, and remove collaborators |
share_entity=same_tenant |
collaborator_org_scope=tenant_viewers_or_editors |
组织内可阅读或可编辑者可查看、添加、移除协作者 | Tenant viewers or editors can view, add, and remove collaborators |
manage_collaborator_entity=collaborator_can_view |
collaborator_permission_scope=viewer |
拥有可阅读权限的协作者可查看、添加、移除协作者 | Collaborators with view permission can view, add, and remove collaborators |
manage_collaborator_entity=collaborator_can_edit |
collaborator_permission_scope=editor |
拥有可编辑权限的协作者可查看、添加、移除协作者 | Collaborators with edit permission can view, add, and remove collaborators |
manage_collaborator_entity=collaborator_full_access |
collaborator_permission_scope=full_access |
拥有可管理权限的协作者可查看、添加、移除协作者 | Collaborators with full-access permission can view, add, and remove collaborators |
copy_entity=anyone_can_view |
copy_scope=viewer |
拥有可阅读权限的用户可复制内容 | Users with view permission can copy content |
copy_entity=anyone_can_edit |
copy_scope=editor |
拥有可编辑权限的用户可复制内容 | Users with edit permission can copy content |
copy_entity=only_full_access |
copy_scope=full_access |
仅拥有可管理权限的协作者可复制内容 | Only collaborators with full-access permission can copy content |
security_entity=anyone_can_view |
security_scope=viewer |
拥有可阅读权限的用户可创建副本、打印、下载 | Users with view permission can create copies, print, and download |
security_entity=anyone_can_edit |
security_scope=editor |
拥有可编辑权限的用户可创建副本、打印、下载 | Users with edit permission can create copies, print, and download |
security_entity=only_full_access |
security_scope=full_access |
仅拥有可管理权限的用户可创建副本、打印、下载 | Only users with full-access permission can create copies, print, and download |
comment_entity=anyone_can_view |
comment_scope=viewer |
拥有可阅读权限的用户可评论 | Users with view permission can comment |
comment_entity=anyone_can_edit |
comment_scope=editor |
拥有可编辑权限的用户可评论 | Users with edit permission can comment |
lock_switch=true |
lock_state=locked_not_inheriting |
已限制权限,不再继承父级页面权限 | The node is locked and no longer inherits parent-page permissions |
lock_switch=false |
lock_state=not_locked_or_inheriting |
未限制权限,可能继承父级页面权限 | The node is not locked and may inherit parent-page permissions |
| field absent / unsupported | <state>=unknown |
当前 schema 未返回,无法判断 | The current schema did not return this field, so it is unknown |
check_scope=current_public_permission_only |
check_scope=current_public_permission_only |
本次判断的是当前文档公共访问和协作权限设置,不是协作者名单或历史权限变更审计 | This check covers current public access and collaboration settings, not collaborator-list or historical permission-change auditing |
sec_label_name missing |
sec_label=missing |
缺少密级标签 | Security label is missing |
定位与治理动作
风险对象必须能让用户直接定位和处理:
- 摘要中的每个优先处理对象必须包含
risk_id、path/title、URL、type、owner、sec_label、风险原因、关键证据和建议动作。 - 完整清单、访问复核清单、整改 dry-run 和写入确认都必须包含 URL。缺少 URL 时,展示 token / node_token,并说明 URL 未能获取。
- 同名文档、shortcut 或副本必须用 path + URL 区分;不要只输出 title。
- 完整风险清单中的每条记录必须有稳定
risk_id,格式为PG-001、PG-002。risk_id在同一次诊断和后续 dry-run / 确认 / 验证中保持不变。 - 即使摘要只展示 Top 样例,也必须给样例分配稳定
risk_id;不能输出无法选择的标题列表。 - 建议动作必须和风险类型绑定:互联网公开链接优先建议关闭链接分享或收紧为组织内;允许对外分享优先建议 owner 复核或关闭对外分享;缺少密级标签优先建议补齐密级;复制 / 下载 / 评论范围只在用户 policy 明确时建议收紧。
- 写入动作只能作为下一步选项或确认请求出现。不要在诊断摘要里暗示已经执行缩权。
单目标公开性判断
当 intent=public_exposure_check 且 target_scope=single_resource 时,使用此模板。默认渲染 target_count=1 的 per_target_permission_assessment,跟随用户当前语言,不直接展示底层字段名;用户要求 raw evidence 时,再追加字段证据。
中文模板:
结论:<不是对外公开 / 存在互联网公开链接 / 允许对外分享>。
目标:<title>
URL:<url-or-token-if-url-unavailable>
类型:<type>
当前链接访问范围:<render link_access>
对外分享:<render external_sharing>
外部邀请:<render external_invitation or omit if unknown because field is absent>
协作者管理(组织维度):<render collaborator_org_scope>
协作者管理(权限维度):<render collaborator_permission_scope or omit if unknown because field is absent>
复制内容:<render copy_scope or omit if unknown because field is absent>
创建副本 / 打印 / 下载:<render security_scope>
评论:<render comment_scope>
Wiki 继承限制:<render lock_state or omit if unknown because field is absent>
检查边界:<render check_scope>
English template:
Conclusion: <Not publicly accessible on the internet / A public internet link is enabled / External sharing is enabled>.
Target: <title>
URL: <url-or-token-if-url-unavailable>
Type: <type>
Current link access: <render link_access>
External sharing: <render external_sharing>
External invitations: <render external_invitation or omit if unknown because field is absent>
Collaborator management by tenant: <render collaborator_org_scope>
Collaborator management by permission: <render collaborator_permission_scope or omit if unknown because field is absent>
Copy content: <render copy_scope or omit if unknown because field is absent>
Create copies / print / download: <render security_scope>
Comments: <render comment_scope>
Wiki inheritance lock: <render lock_state or omit if unknown because field is absent>
Check boundary: <render check_scope>
Raw evidence, only when requested:
Evidence fields:
- link_share_entity=<value>
- external_access_entity=<value>
- external_access=<value>
- invite_external=<value>
- share_entity=<value>
- manage_collaborator_entity=<value>
- copy_entity=<value>
- security_entity=<value>
- comment_entity=<value>
- lock_switch=<value>
多目标明确列表诊断
当 target_scope=explicit_list 时,使用此模板。该场景不执行容器递归发现;对用户提供的每个 URL / token 逐个生成 per_target_permission_assessment,再按风险分组聚合。权限语义和单目标、容器诊断完全复用,不新增判断模型。
已完成只读权限诊断,没有做任何权限修改。
一句话结论:<N> 个目标中,<risk_count> 个存在待复核权限风险;<internet_public_count> 个存在互联网公开链接候选,<external_access_count> 个允许对外分享,<unknown_count> 个无法完整判断。
覆盖情况:
- 用户提供目标:<input_target_count>;成功解析:<resolved_count>
- 成功读取文档公共访问和协作权限设置:<permission_checked_count>;读取失败 / 不支持 / 无权限:<failed_or_unsupported_count>
逐目标结果(1-10 个目标默认全部展示;超过 10 个时按 `摘要清单展开规则` 展示,并提示生成完整风险清单):
- <risk_id-or-item_id> <path-or-title> (<type>)
URL: <url-or-token-if-url-unavailable>
结论:<not_public / public_link_enabled / external_sharing_enabled / policy_review / unknown>
关键权限:<render link_access>; <render external_sharing>; <render security_scope>; <render comment_scope>
密级:<sec_label_name-or-missing-or-unknown>
待复核原因:<risk reason or none>
建议动作:<recommended action or no action>
分组摘要:
- 互联网公开链接候选:<count>;允许对外分享:<count>;公司内链接可访问 / 可编辑:<count>
- 复制 / 下载 / 打印 / 评论待策略确认:<count>;无法判断:<count and reason summary>
建议下一步:
- 处理明确的 <risk_id>,先生成只读 dry-run。
- 生成完整风险清单 artifact,后续可按 `risk_id`、风险分组、URL 或 `selected=true` 选择治理范围;只看权限设置时改用 `权限设置清单`。
摘要清单展开规则
容器安全诊断的摘要必须兼顾可读性和可治理性。不要用固定 Top N 代替可处理清单。
| 风险对象数 | 摘要默认展示 | 必须提供的下一步 |
|---|---|---|
0 |
只展示覆盖情况、未覆盖能力和剩余限制 | 如需更细审计,可生成权限设置清单 |
1-10 |
展示全部风险对象 | 可直接按 risk_id 生成 dry-run 或写入确认 |
11-30 |
展示全部高优先级待复核对象;中 / 低优先级做分组摘要 | 生成完整风险清单 artifact,或按风险分组生成 dry-run |
31-100 |
每个高优先级待复核分组展示 Top 5,附未展示数量 | 生成 Markdown / CSV / 飞书文档完整风险清单 |
100+ |
只展示分组统计、Top 样例和覆盖限制,不内联长表 | 强烈建议生成结构化风险清单后再选择治理范围 |
高优先级待复核对象包括:互联网公开链接、允许对外分享、允许对外分享且缺少 / 低于 policy 密级标签、公司内可编辑链接。协作者管理范围较宽默认归入中优先级待复核;只有用户 policy 明确要求严格协作者管理时才提升优先级。复制 / 下载 / 打印、评论范围在用户未提供明确 policy 时归入“待策略确认”,不要挤占高优先级清单。
摘要中的每个待复核对象必须包含 risk_id、path/title、URL、type、owner、sec_label、风险原因、关键证据和建议动作。对同一底层文档的多个 Wiki 入口或 shortcut,必须用 URL 区分;如果建议合并治理,在建议动作里说明它们指向同一底层对象。
审计摘要
目标:<title> (<type>)
URL:<url-or-token-if-url-unavailable>
结论:<合规 / 待确认风险 / 无法完整判断>
证据:
- link_share_entity=<value>
- external_access_entity=<value>
- external_access=<value>
- invite_external=<value>
- share_entity=<value>
- manage_collaborator_entity=<value>
- copy_entity=<value>
- security_entity=<value>
- comment_entity=<value>
- lock_switch=<value>
- sec_label_name=<value-or-missing>
限制:<unsupported_checks or none>
建议动作:<read-only next step or proposed remediation>
容器安全诊断报告摘要
已完成只读安全诊断,没有做任何权限修改。
一句话结论:<未发现互联网公开链接 / 存在互联网公开链接候选风险>;<external_access_count> 个文档允许对外分享,<missing_label_count> 个文档缺少密级标签。建议优先复核 <top_priority_group_or_paths>。
覆盖情况:
- 当前身份可见目标:<visible_count>
- 已成功检查文档公共访问和协作权限设置:<permission_checked_count>
- 读取失败 / 已删除 / 无权限:<failed_count>
- 未覆盖能力:<collaborator_list / inheritance / audit_log / view_records / none>
风险分级:
- 高优先级待复核:<internet_public_count> 个互联网公开链接候选;<external_access_count> 个允许对外分享;其中 <external_without_label_count> 个同时缺少密级标签。
- 中优先级待复核:<tenant_link_count> 个公司内知道链接可访问 / 可编辑;<wide_share_count> 个协作者管理范围较宽。
- 待策略确认:<security_count> 个复制 / 下载 / 打印范围待复核;<comment_count> 个评论范围待复核。
- 无法判断:<unsupported_or_unverified_summary>。
分级含义:
- 互联网公开链接:获得链接的任何人可能访问,最高优先级。
- 允许对外分享:外部分享能力已开启,需 owner 复核;不等于已经存在外部协作者。
- 公司内链接可访问:不是对外公开,但组织内扩散范围较宽。
- 复制 / 下载 / 打印 / 评论:是否需要收紧取决于业务 policy 和文档密级。
高优先级待复核清单:
> 按 `摘要清单展开规则` 展示。每个对象必须包含 `risk_id` 和 URL;缺少 URL 时展示 token / node_token 和原因。若没有高优先级对象,只展示中优先级或待策略确认分组摘要。
- <risk_id> <path-or-title> (<type>)
URL: <url-or-token-if-url-unavailable>
Owner: <owner-or-unknown>
密级:<sec_label_name-or-missing-or-unknown>
待复核原因:<why high priority>
证据:<short user-language evidence, e.g. 对外分享=已开启;链接分享=未开启互联网公开链接>
建议动作:<recommended action>
未完全展开:
- 完整风险清单包含 <risk_manifest_count> 条;本摘要已展示 <shown_count> 条,未展示 <hidden_count> 条。
- 未展示分组:<risk_group=count summary or none>
建议下一步:
- 生成完整风险清单 artifact,包含 `risk_id`、URL、owner、密级、证据字段、建议动作和 `selected` 列。
- 基于 risk_id、风险分组、owner、路径、URL 或 artifact 中 `selected=true` 的行生成只读整改 dry-run。
- 只针对最高优先级目标进入写入确认流程,例如关闭互联网公开链接或收紧对外分享;写入前仍需二次确认。
- 按 owner / 密级生成复核清单。
- 继续读取访问记录,判断低活跃高暴露。
剩余限制:
- <do not claim collaborator-list verification if unsupported>
- <external_access_entity=open or external_access=true only means sharing outside is allowed, not that external collaborators exist>
- <missing view_records / DLP / AI index status / audit log limitations>
可操作风险清单
完整风险清单用于让用户选择后续治理范围。Markdown / CSV / 飞书文档报告都必须包含以下字段;如果某种格式无法完整展示嵌套证据,使用短文本摘要,保留 risk_id 和 URL。
范围:<explicit_list / wiki_space / wiki_node / drive_folder> <name-or-id>
生成时间:<timestamp>
用途:用户可按 risk_id、priority、risk_group、owner、path、URL 或 selected=true 选择治理对象。
| risk_id | priority | Path | URL | Type | Owner | sec_label | risk_group | evidence | recommended_action | current_setting | target_setting | selected | decision | status | skip_reason |
|---------|----------|------|-----|------|-------|-----------|------------|----------|--------------------|-----------------|----------------|----------|----------|--------|-------------|
| PG-001 | P1 | <path> | <url-or-token> | <type> | <owner-or-unknown> | <sec-label-or-missing> | <risk_group> | <short evidence> | <recommended-action> | <field=value> | <field=value-or-owner-review> | false | undecided | pending | <none-or-reason> |
字段规则:
risk_id按 priority、risk_group、normalized path、URL、canonical token / node_token 稳定排序生成;URL 缺失时必须使用 token / node_token 作为 tie-breaker。同名、同路径、shortcut 或多个 Wiki 入口不能只靠 path 生成编号;同一次诊断中不得重复。priority使用P0、P1、P2、PolicyReview、Unknown;面向用户展示时可译为“最高优先级 / 高优先级待复核 / 中优先级待复核 / 待策略确认 / 无法判断”。selected默认false;用户可在 CSV / 飞书文档表格中改为true,或在聊天中直接说 “处理 PG-001、PG-003”。decision表示用户决策:undecided、keep、dry_run、confirm_write、skip。status表示执行状态:pending、dry_run_ready、confirmed、executed、verified、failed、skipped。target_setting是建议目标状态,不代表已执行;没有明确 policy 时只能写 owner review / policy review。
治理选择交互
用户基于完整风险清单继续治理时,Agent 必须先解析选择范围,再生成只读 dry-run:
可接受的用户选择:
- 处理 PG-001、PG-003、PG-008,把互联网公开链接关闭。
- 先处理所有 risk_group=internet_public_link,不处理 external_access_only。
- 把 CSV / 飞书文档里 selected=true 的行生成整改 dry-run。
- PG-003 先跳过,只处理 PG-001。
Agent 必须回复:
- 已选择对象数:<count>
- 选择来源:<risk_id list / risk_group / selected=true / URL / path>
- 将执行的下一步:生成 dry-run;不执行写入
- 需要跳过或重新确认的对象:<missing risk_id / unsupported / changed_since_report / no manage_public>
如果用户选择来自旧报告或外部 artifact,生成 dry-run 前必须对所选目标重新读取当前权限。当前设置和报告快照不一致时,标记为 changed_since_report,不要直接沿用旧字段执行。
权限设置清单
范围:<explicit_list / wiki_space / wiki_node / drive_folder> <name-or-id>
| Path | URL | Type | link_share_entity | external_access_entity / external_access | invite_external | share_entity | manage_collaborator_entity | copy_entity | security_entity | comment_entity | lock_switch | sec_label_name | 建议动作 | 限制 |
|------|-----|------|-------------------|------------------------------------------|-----------------|--------------|----------------------------|-------------|-----------------|----------------|-------------|----------------|----------|------|
| <path> | <url-or-token> | <type> | <value> | <value> | <value-or-unknown> | <value> | <value-or-unknown> | <value-or-unknown> | <value> | <value> | <value-or-unknown> | <value-or-missing> | <recommended-action> | <unsupported-or-none> |
访问复核清单
范围:<wiki_space / wiki_node / drive_folder / explicit_list> <name-or-id>
复核对象数:<count>
| Owner | Path | URL | Type | 密级 | 风险标签 | 当前权限摘要 | 最近访问证据 | 建议动作 |
|-------|------|-----|------|------|----------|--------------|--------------|----------|
| <owner-or-unknown> | <path> | <url-or-token> | <type> | <sec-label-or-missing> | <labels> | <link/external/share/security/comment> | <uv/pv/last_view_or_unknown> | <keep / tighten / owner review / unsupported> |
限制:<unsupported_checks / discovery_blockers / none>
整改 dry-run
将生成整改计划,不执行写入:
- 范围:<scope>
- 选择来源:<risk_id list / risk_group / selected=true artifact / URL list>
- 候选目标数:<count>
- 计划执行命令:<command family>
- 重新读取:已对所选目标重新读取当前权限;changed_since_report=<count>
- 字段变更:
- <risk_id> <path> (<url-or-token>): <field> <old> -> <new>
- 跳过项:<unsupported / no manage_public / unsupported type / missing policy>
- 验证方式:执行后重新读取 <元数据 / 文档公共访问和协作权限设置>
- 有限回滚范围:<文档公共访问和协作权限设置快照字段 / 不适用>
请确认是否进入写入确认。
批量权限申请确认
将逐个发起 <view / edit> 权限申请:
- 候选目标数:<count>
- 命令类型:drive +apply-permission
- 风险:write;每个请求都会通知 owner
- 执行方式:按候选列表顺序逐个调用,失败项会单独记录
候选示例:
- <risk_id> <title> (<type>, <url-or-token>):<reason>
请确认是否对上述候选目标发起权限申请。
owner 转移确认
将逐个转移 owner:
- 候选目标数:<count>
- 命令类型:drive permission.members transfer_owner
- 风险:high-risk-write;会改变文档 owner,可能影响原 owner 权限和文档所在位置
- 新 owner 映射:<same_new_owner / per_target_new_owner>
- 全局新 owner:<member_id> (<member_type>);仅当所有候选目标的新 owner 相同时展示,否则省略
- 通知新 owner:<need_notification>
- 原 owner 权限:<remove_old_owner=true / old_owner_perm>
- 个人空间位置:<stay_put>
- 执行方式:按候选列表顺序逐个调用,失败项会单独记录
- 验证方式:执行后重新读取 metadata owner;metadata 不支持的类型标记为 partial
- 回滚边界:不做自动回滚;如需恢复 owner,必须另起一次反向 owner 转移确认
候选示例:
- <risk_id> <title> (<type>, <url-or-token>):当前 owner=<owner-or-unknown> -> 新 owner=<member_id> (<member_type>)
请确认是否对上述候选目标转移 owner。
确认请求
将执行 <operation>:
- 目标:<risk_id> <title> (<type>, <url-or-token>)
- 命令类型:<command family>
- 风险:<risk_level>
- 字段变更:
- <field>: <old> -> <new>
- 验证方式:执行后重新读取 <元数据 / 文档公共访问和协作权限设置>
- 有限回滚材料:<文档公共访问和协作权限设置快照 / 不适用>
请确认是否执行。
最终摘要
已完成:<read checks / writes>
验证:<fresh read result or async permission-request approval note>
清单状态:<risk_id status updates / not applicable>
回滚材料:<文档公共访问和协作权限设置快照 / 不适用>
剩余限制:<unsupported_checks / partial facts / approvals>