diff --git a/docs/cli-interface-flag-migrations.md b/docs/cli-interface-flag-migrations.md index 76d11608..d4a50124 100644 --- a/docs/cli-interface-flag-migrations.md +++ b/docs/cli-interface-flag-migrations.md @@ -41,7 +41,7 @@ PR merge-base 同时拥有快照生成器、比较器和已审批清单。门禁 scripts/policy/interface-migrations/approved-flag-migrations-v1.json ``` -清单使用严格 JSON 解析:版本、字段名大小写、JSON 值类型、命令路径和 flag 名都必须精确;拒绝重复键、未知键、scalar `null` 与尾随 JSON 值,`reason` 不能为空;禁止 `*`、`?`、前缀规则或其他 wildcard。当前清单登记了 IM ID rename 的 `pending` 记录;`pending` 只记录已评审计划,候选与 merge-base 仍必须精确匹配 `before`,因此本治理 PR **不授权 PR #904 或任何产品接口变化**。 +清单使用严格 JSON 解析:版本、字段名大小写、JSON 值类型、命令路径和 flag 名都必须精确;拒绝重复键、未知键、scalar `null` 与尾随 JSON 值,`reason` 不能为空;禁止 `*`、`?`、前缀规则或其他 wildcard。清单中的 `pending` 记录只记录已评审计划,并授权其精确列出的后续产品迁移;候选与 merge-base 仍必须精确匹配 `before`,不能授权同一个提交中的接口变化,也不能作为其他命令或参数的通配豁免。 ## 两阶段迁移与回执清理 diff --git a/scripts/policy/interface-migrations/approved-flag-migrations-v1.json b/scripts/policy/interface-migrations/approved-flag-migrations-v1.json index 7d5ed345..fc66b357 100644 --- a/scripts/policy/interface-migrations/approved-flag-migrations-v1.json +++ b/scripts/policy/interface-migrations/approved-flag-migrations-v1.json @@ -1158,6 +1158,321 @@ }, "state": "pending", "reason": "保留旧 argv 兼容性,并将 IM ID 规范 flag 设为唯一可见入口" + }, + { + "command": "dws aisearch", + "legacy": { + "name": "keyword", + "before": {"present": true, "type": "string", "shorthand": "w", "scope": "local"}, + "after": {"present": true, "type": "string", "hidden": true, "shorthand": "w", "scope": "local", "alias_of": "query"} + }, + "canonical": { + "name": "query", + "before": {"present": true, "type": "string", "hidden": true, "scope": "local"}, + "after": {"present": true, "type": "string", "scope": "local"} + }, + "state": "pending", + "reason": "Preserve legacy argv compatibility while making the canonical flag the only visible parameter." + }, + { + "command": "dws aisearch person", + "legacy": { + "name": "keyword", + "before": {"present": true, "type": "string", "shorthand": "w", "scope": "local"}, + "after": {"present": true, "type": "string", "hidden": true, "shorthand": "w", "scope": "local", "alias_of": "query"} + }, + "canonical": { + "name": "query", + "before": {"present": true, "type": "string", "hidden": true, "scope": "local"}, + "after": {"present": true, "type": "string", "scope": "local"} + }, + "state": "pending", + "reason": "Preserve legacy argv compatibility while making the canonical flag the only visible parameter." + }, + { + "command": "dws chat +broadcast", + "legacy": { + "name": "text", + "before": {"present": true, "type": "string", "scope": "local"}, + "after": {"present": true, "type": "string", "hidden": true, "scope": "local", "alias_of": "content"} + }, + "canonical": { + "name": "content", + "before": {"present": false}, + "after": {"present": true, "type": "string", "scope": "local"} + }, + "state": "pending", + "reason": "Preserve legacy argv compatibility while making the canonical flag the only visible parameter." + }, + { + "command": "dws chat +dm", + "legacy": { + "name": "text", + "before": {"present": true, "type": "string", "scope": "local"}, + "after": {"present": true, "type": "string", "hidden": true, "scope": "local", "alias_of": "content"} + }, + "canonical": { + "name": "content", + "before": {"present": false}, + "after": {"present": true, "type": "string", "scope": "local"} + }, + "state": "pending", + "reason": "Preserve legacy argv compatibility while making the canonical flag the only visible parameter." + }, + { + "command": "dws chat +messages-batch-send-by-bot", + "legacy": { + "name": "text", + "before": {"present": true, "type": "string", "scope": "local"}, + "after": {"present": true, "type": "string", "hidden": true, "scope": "local", "alias_of": "content"} + }, + "canonical": { + "name": "content", + "before": {"present": false}, + "after": {"present": true, "type": "string", "scope": "local"} + }, + "state": "pending", + "reason": "Preserve legacy argv compatibility while making the canonical flag the only visible parameter." + }, + { + "command": "dws chat +messages-reply", + "legacy": { + "name": "conversation-id", + "before": {"present": true, "type": "string", "scope": "local"}, + "after": {"present": true, "type": "string", "hidden": true, "scope": "local", "alias_of": "group"} + }, + "canonical": { + "name": "group", + "before": {"present": false}, + "after": {"present": true, "type": "string", "scope": "local"} + }, + "state": "pending", + "reason": "Preserve legacy argv compatibility while making the canonical flag the only visible parameter." + }, + { + "command": "dws chat +messages-reply", + "legacy": { + "name": "text", + "before": {"present": true, "type": "string", "scope": "local"}, + "after": {"present": true, "type": "string", "hidden": true, "scope": "local", "alias_of": "content"} + }, + "canonical": { + "name": "content", + "before": {"present": false}, + "after": {"present": true, "type": "string", "scope": "local"} + }, + "state": "pending", + "reason": "Preserve legacy argv compatibility while making the canonical flag the only visible parameter." + }, + { + "command": "dws chat +messages-send-by-bot", + "legacy": { + "name": "text", + "before": {"present": true, "type": "string", "scope": "local"}, + "after": {"present": true, "type": "string", "hidden": true, "scope": "local", "alias_of": "content"} + }, + "canonical": { + "name": "content", + "before": {"present": false}, + "after": {"present": true, "type": "string", "scope": "local"} + }, + "state": "pending", + "reason": "Preserve legacy argv compatibility while making the canonical flag the only visible parameter." + }, + { + "command": "dws chat +messages-send-by-webhook", + "legacy": { + "name": "text", + "before": {"present": true, "type": "string", "scope": "local"}, + "after": {"present": true, "type": "string", "hidden": true, "scope": "local", "alias_of": "content"} + }, + "canonical": { + "name": "content", + "before": {"present": false}, + "after": {"present": true, "type": "string", "scope": "local"} + }, + "state": "pending", + "reason": "Preserve legacy argv compatibility while making the canonical flag the only visible parameter." + }, + { + "command": "dws chat +send-to-group", + "legacy": { + "name": "text", + "before": {"present": true, "type": "string", "scope": "local"}, + "after": {"present": true, "type": "string", "hidden": true, "scope": "local", "alias_of": "content"} + }, + "canonical": { + "name": "content", + "before": {"present": false}, + "after": {"present": true, "type": "string", "scope": "local"} + }, + "state": "pending", + "reason": "Preserve legacy argv compatibility while making the canonical flag the only visible parameter." + }, + { + "command": "dws chat message reply", + "legacy": { + "name": "conversation-id", + "before": {"present": true, "type": "string", "required": true, "scope": "local"}, + "after": {"present": true, "type": "string", "required": false, "hidden": true, "scope": "local", "alias_of": "group"} + }, + "canonical": { + "name": "group", + "before": {"present": false}, + "after": {"present": true, "type": "string", "required": true, "scope": "local"} + }, + "state": "pending", + "reason": "Preserve legacy argv compatibility while making the canonical flag the only visible parameter." + }, + { + "command": "dws chat message reply", + "legacy": { + "name": "text", + "before": {"present": true, "type": "string", "required": true, "scope": "local"}, + "after": {"present": true, "type": "string", "required": false, "hidden": true, "scope": "local", "alias_of": "content"} + }, + "canonical": { + "name": "content", + "before": {"present": false}, + "after": {"present": true, "type": "string", "required": true, "scope": "local"} + }, + "state": "pending", + "reason": "Preserve legacy argv compatibility while making the canonical flag the only visible parameter." + }, + { + "command": "dws chat message send", + "legacy": { + "name": "file-path", + "before": {"present": true, "type": "string", "scope": "local"}, + "after": {"present": true, "type": "string", "hidden": true, "scope": "local", "alias_of": "file"} + }, + "canonical": { + "name": "file", + "before": {"present": false}, + "after": {"present": true, "type": "string", "scope": "local"} + }, + "state": "pending", + "reason": "Preserve legacy argv compatibility while making the canonical flag the only visible parameter." + }, + { + "command": "dws chat message send", + "legacy": { + "name": "text", + "before": {"present": true, "type": "string", "scope": "local"}, + "after": {"present": true, "type": "string", "hidden": true, "scope": "local", "alias_of": "content"} + }, + "canonical": { + "name": "content", + "before": {"present": true, "type": "string", "hidden": true, "scope": "local"}, + "after": {"present": true, "type": "string", "scope": "local"} + }, + "state": "pending", + "reason": "Preserve legacy argv compatibility while making the canonical flag the only visible parameter." + }, + { + "command": "dws chat message send-by-bot", + "legacy": { + "name": "file-path", + "before": {"present": true, "type": "string", "scope": "local"}, + "after": {"present": true, "type": "string", "hidden": true, "scope": "local", "alias_of": "file"} + }, + "canonical": { + "name": "file", + "before": {"present": false}, + "after": {"present": true, "type": "string", "scope": "local"} + }, + "state": "pending", + "reason": "Preserve legacy argv compatibility while making the canonical flag the only visible parameter." + }, + { + "command": "dws chat message send-by-bot", + "legacy": { + "name": "text", + "before": {"present": true, "type": "string", "scope": "local"}, + "after": {"present": true, "type": "string", "hidden": true, "scope": "local", "alias_of": "content"} + }, + "canonical": { + "name": "content", + "before": {"present": false}, + "after": {"present": true, "type": "string", "scope": "local"} + }, + "state": "pending", + "reason": "Preserve legacy argv compatibility while making the canonical flag the only visible parameter." + }, + { + "command": "dws chat message send-by-webhook", + "legacy": { + "name": "text", + "before": {"present": true, "type": "string", "required": true, "scope": "local"}, + "after": {"present": true, "type": "string", "required": false, "hidden": true, "scope": "local", "alias_of": "content"} + }, + "canonical": { + "name": "content", + "before": {"present": false}, + "after": {"present": true, "type": "string", "required": true, "scope": "local"} + }, + "state": "pending", + "reason": "Preserve legacy argv compatibility while making the canonical flag the only visible parameter." + }, + { + "command": "dws doc +doc-append", + "legacy": { + "name": "text", + "before": {"present": true, "type": "string", "scope": "local"}, + "after": {"present": true, "type": "string", "hidden": true, "scope": "local", "alias_of": "content"} + }, + "canonical": { + "name": "content", + "before": {"present": false}, + "after": {"present": true, "type": "string", "scope": "local"} + }, + "state": "pending", + "reason": "Preserve legacy argv compatibility while making the canonical flag the only visible parameter." + }, + { + "command": "dws doc block insert", + "legacy": { + "name": "text", + "before": {"present": true, "type": "string", "scope": "local"}, + "after": {"present": true, "type": "string", "hidden": true, "scope": "local", "alias_of": "content"} + }, + "canonical": { + "name": "content", + "before": {"present": false}, + "after": {"present": true, "type": "string", "scope": "local"} + }, + "state": "pending", + "reason": "Preserve legacy argv compatibility while making the canonical flag the only visible parameter." + }, + { + "command": "dws doc block update", + "legacy": { + "name": "text", + "before": {"present": true, "type": "string", "scope": "local"}, + "after": {"present": true, "type": "string", "hidden": true, "scope": "local", "alias_of": "content"} + }, + "canonical": { + "name": "content", + "before": {"present": false}, + "after": {"present": true, "type": "string", "scope": "local"} + }, + "state": "pending", + "reason": "Preserve legacy argv compatibility while making the canonical flag the only visible parameter." + }, + { + "command": "dws todo task add-attachment", + "legacy": { + "name": "file-path", + "before": {"present": true, "type": "string", "scope": "local"}, + "after": {"present": true, "type": "string", "hidden": true, "scope": "local", "alias_of": "file"} + }, + "canonical": { + "name": "file", + "before": {"present": false}, + "after": {"present": true, "type": "string", "scope": "local"} + }, + "state": "pending", + "reason": "Preserve legacy argv compatibility while making the canonical flag the only visible parameter." } ] } diff --git a/skills/content-qa/mono-multi-coverage.yaml b/skills/content-qa/mono-multi-coverage.yaml index 440c149e..5a1e458f 100644 --- a/skills/content-qa/mono-multi-coverage.yaml +++ b/skills/content-qa/mono-multi-coverage.yaml @@ -170,6 +170,9 @@ orphan_scripts_allowlist: - path: dingtalk-aitable/scripts/aitable_import_via_task.py disposition: defer reason: "helper referenced indirectly / pending doc" + - path: dingtalk-drive/scripts/drive_tree_list.py + disposition: defer + reason: "legacy helper retained for compatibility; multi Drive uses bounded +list until the helper is revalidated" - path: dingtalk-minutes/scripts/minutes_list_parse.py disposition: defer reason: "pending doc reference"