用途:这是一个封闭世界的策略检查器,用于在计划向 Grammarly 提交文档前,判断上传是否满足本技能的硬性安全门禁。适用于 Writing Score、AI Detection(Beta)或 Plagiarism Detection(Beta)的文档提交,在评估器检查提供商签发的上传源之前和之后使用;初步决策约束 OAuth 元数据披露,最终决策约束文档字节。不应用于写作或编辑内容、文档预览、凭据排障,或要求上传真实文档的场景。
主要能力:结合 Grammarly 文档化的格式与大小限制以及本地治理决策,对仅含元数据的清单做确定性检查。脚本接受严格 JSON,拒绝重复键和非标准常量,递归拒绝原始文本、位置、响应和凭据字段,且不进行网络或文件系统写入。它强制检查文档化扩展名、4,194,304 字节上限、UTF-8 文本计数、非受限分类、所有审批门禁、精确的 https://api.grammarly.com 控制平面源,以及默认 TLS 端口上明确批准的公共 HTTPS S3 预签名上传源。
使用方式:先准备符合 references/submission-contract.md 的合成或生产批准的仅元数据清单,需有独立数据所有者批准、同意证据、传输批准、内容分类和对提供商保留边界的确认。需要 Python 3.10 或更新版本,无需文档路径、内容、凭据、网络或可写输出目录。运行:python3 scripts/audit_submission_manifest.py < submission-manifest.json。
结果含义:BLOCKED 为硬性停止;INSPECTION_READY 仅允许创建规范化文件名任务并检查其净化后的上传源;READY 仅表示可继续进入单独授权的上传工作流,并不证明文档合法、准确或对新目的地安全。输出为确定性 JSON 决策和失败检查项名称,不回显文件名、路径、文本、预览、凭据、标识符或超出脚本输出中安全数字和枚举字段的原始文档元数据。
限制:BLOCKED 涵盖不支持的扩展名、零字节或超大字节、提供字符/词限制、审批/同意/保留/目的地检查失败、未知字段、重复键或不安全的内容/凭据字段;不得为调查而截断、拆分、预览、记录或上传文档。无效输入返回非零退出状态及不含被拒值的 JSON 决策。需读取 references/submission-contract.md 了解输入模式和 API 派生限制,读取 references/governance-gate.md 判断审批、同意、保留和目的地证据的充分性。