mcpField
P
play-policy-insights

play-policy-insights

github.com/android安全10.0k1.4k 次安装2 天前更新
代码仓库

关于 play-policy-insights

用于审查 Android 应用政策合规性的技能,聚焦数据安全、演示登录凭据和受限权限。它规定自动分析、分阶段审计及报告生成流程。

主要功能

  1. 01审计数据安全披露
  2. 02检查演示登录凭据
  3. 03检查受限权限
  4. 04按目标执行分阶段分析
  5. 05汇总并生成合规报告

适用场景

  1. 01发布前核查 Android 应用政策
  2. 02审查应用权限与数据安全信息
  3. 03生成合规审计结果

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/android/skills --skill play-policy-insights

安装后在 Claude Code 中输入/play-policy-insights确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

resources/
common_mandates.md
compliance_report_template.md
critic.md
goal_data_safety.md
goal_permissions_and_apis.md
goal_user_account.md
policies.json
scanner_config.json
scripts/
generate_report.py
orchestrator.py
play_store_scraper.py
scanner.py
template_engine.py

详细介绍

Play Policy Insights:数据安全、登录凭据和受限权限

你必须针对三个特定的政策领域审核 Android 应用。你必须检查数据安全、演示登录凭据和受限权限。

路径解析

  • repo_root:包含此 SKILL.md 的目录的绝对路径。
  • app_dir:包含应用代码的目录的绝对路径。
  • temp_dir:工作区根目录下临时目录的绝对路径。 该目录位于 .scratch/play_policy_insights_<uuid>。目录约束要求:所有文件系统写入、中间产物和日志都必须严格限制在此目录中。这可确保该技能在各种执行环境中保持可移植且安全,包括本地测试环境和 CI/CD 管道,避免依赖系统级临时路径或用户主目录。

关键要求

  • 执行模式意识:在开始第 2 阶段之前,评估你的执行环境是否提供了用于启动或委派任务给通用子 Agent 的工具(例如,通常名为 invoke_agent、delegate_task 或 spawn_worker 的工具,并使用诸如“generalist”或“coding_agent”之类的通用 Agent 配置)。

  • 如果答案是 YES,则必须使用 模式 A(委派)。

  • 如果答案是 NO,则使用 模式 B(顺序自行执行)。你必须阅读为子 Agent 编写的提示词文件,遵循其中的说明,并将预期输出文件写入磁盘。

  • 子 Agent 编排:

    • 如果使用“模式 A(委派)”,请等待子 Agent 确认“SUCCESS”,以确认任务已完成。

    • 幂等性与超时保护:如果子 Agent 失败或超时,在重试之前,你必须检查其目标输出文件(例如 <temp_dir>/worker_<goal_name>.json)是否存在且完整。如果文件存在且包含有效 JSON,则将执行视为 SUCCESS 并继续。否则,最多重试三次。

  • 快速失败要求:第 1 阶段的自动审核是事实依据。如果 orchestrator.py 失败,你必须立即停止并说明失败原因。不得以人工审核作为备用方案。

两阶段流程

第 1 阶段:事实收集与分流
  1. 初始化并分流:
    • 运行 python3 <repo_root>/scripts/orchestrator.py init <app_dir>。
    • 这将创建临时环境、执行静态分析、梳理代码库、确定审核目标,并为每个审核目标的子 Agent 以及指定的评论员和汇总员子 Agent 生成提示词。
    • 你必须等待脚本完成,最长等待 5 分钟。
  2. 记录环境信息:记录 JSON 输出中的 temp_dir 和 activated_goals 值。你将在第 2 阶段中用到它们。
  3. 评估目标:如果 activated_goals 为空,则跳至第 2 阶段的第 3 步(汇总)。否则,进入第 2 阶段的第 1 步(详细分析)。
第 2 阶段:以目标为导向的审核

确定你的执行能力,并选择模式 A 或模式 B 继续。

模式 A:具备委派能力的协调器(并行)
  1. 详细分析:针对 activated_goals 中的每个目标(例如 permissions_and_apis、data_safety_part_1、data_safety_part_2), 委派给子 Agent。**并发限制:**同时运行的子 Agent 不得超过 3 个。先启动第一批,最多 3 个,等待它们完成后,再启动下一批。重复此步骤,直到 所有目标均已完成。传递以下提示词:"Read your instructions from <temp_dir>/prompt_worker_<goal_name>.md and execute. MANDATORY: You must use your file-writing capabilities to save your final JSON findings directly to the file system at <temp_dir>/worker_<goal_name>.json. You are strictly forbidden from outputting the JSON in your chat response. To minimize context usage, your final response must be exactly 'SUCCESS' and nothing else." 验证:确认每个 <temp_dir>/worker_<goal_name>.json 均存在且包含有效 JSON。如果子 Agent 失败或 超时,但有效的 JSON 输出文件已存在于磁盘上,则不要重试,正常继续。只有在文件缺失或无效时, 才重试对应的工作 Agent(最多三次)。
  2. 汇总发现:执行 Python 汇总命令: python3 <repo_root>/scripts/orchestrator.py aggregate <temp_dir>。此命令会生成 aggregated_findings.json,并返回一个 JSON 对象,其中的 critic_chunks 表示需要验证的分块数(例如 {"temp_dir": "...", "critic_chunks": 2})。
  3. 并行审查:针对从 1 到 critic_chunks 的每个分块索引 i,委派给子 Agent。**并发限制:**同时运行的审查子 Agent 不得超过 3 个。按上述方式每 3 个分成一批。传递以下提示词: "Read your instructions from <temp_dir>/prompt_critic_<i>.md and execute. MANDATORY: You must use your file-writing capabilities to save your final JSON findings directly to the file system at <temp_dir>/critic_output_<i>.json. You are strictly forbidden from outputting the JSON in your chat response. To minimize context usage, your final response must be exactly 'SUCCESS' and nothing else." 验证:继续之前,确认每个 <temp_dir>/critic_output_<i>.json 均存在且包含有效 JSON。如果执行失败或 超时,但有效的 JSON 文件已存在,则正常继续;否则,重试对应的审查分块。
  4. 继续最终处理(下方步骤 4)
模式 B:不具备委派能力的协调器(顺序执行)
  1. 详细分析:依次处理 activated_goals 中的每个目标:
    • 读取 <temp_dir>/prompt_worker_<goal_name>.md 的内容。
    • 自行执行该文件中的说明。
    • 重要:必须严格按照提示词的要求格式整理发现,并保存到 <temp_dir>/worker_<goal_name>.json。不要在思考或聊天中总结发现;继续处理下一个任务。
    • 验证:确认 <temp_dir>/worker_<goal_name>.json 存在后,再处理下一个目标。
  2. 汇总发现:执行 Python 汇总命令: python3 <repo_root>/scripts/orchestrator.py --aggregate <temp_dir>。此命令会生成 aggregated_findings.json,并返回一个 JSON 对象,其中的 critic_chunks 表示需要验证的分块数。
  3. 顺序审查:依次处理索引 i 从 1 到 critic_chunks 的每个分块:
    • 读取 <temp_dir>/prompt_critic_<i>.md 的内容。
    • 自行执行其中的步骤,并将发现保存到 <temp_dir>/critic_output_<i>.json。
    • 验证:确认 <temp_dir>/critic_output_<i>.json 存在后,再处理下一个分块。
  4. 继续最终处理(下方步骤 4)
最终处理(两种模式)
  1. 呈现结果:运行 python3 <repo_root>/scripts/generate_report.py <temp_dir>。 该命令会生成 <temp_dir>/compliance_report.md。将此输出文件呈现给用户。
  2. 停止:审计已完成。等待进一步指示。

评论

支持 Markdown