Skip to main content

arkweb-security-patch-fetch

Fetch and normalize the exact upstream Chromium security patch for ArkWeb integration.

Quellinformationen

Repository
openharmonyinsight/openharmony-skills
Letzte Quellaktivität
3. Juni 2026 um 05:24
Erkannte Sprache von SKILL.md
Mehrsprachig
Sterne
34
Forks
7

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
5 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
arkweb-security-patch-fetch
description
Fetch and normalize the exact upstream Chromium security patch for ArkWeb integration.
metadata
{"descriptionZH":"ArkWeb 上游补丁抓取技能。只抓取明确目标修复 commit/CL,不补抓依赖 patch,不混入无关 PR。","tags":["ArkWeb","patch","Chromium","Gerrit"]}
# ArkWeb Patch Fetch 用于 `arkweb-security-patch-fetcher`。 ## When to use this skill Use this skill after vulnerability intake has selected upstream fix PRs/CLs. It fetches or locates the exact patch files and modified file list used by later ArkWeb impact and merge stages. ## 输入 - `.ace-outputs/{runId}/{issue_id}/01_issue_analysis.md` - `.ace-outputs/{runId}/{issue_id}/01_issue_analysis.json` - 其中 `upstream_fix_prs[]` 是唯一可信入口;不要重新从相似标题或相同目录扩展抓取范围。 ## 输出 写入同一个 issue 目录: - `.ace-outputs/{runId}/{issue_id}/02_patch_fetch.md` - `.ace-outputs/{runId}/{issue_id}/02_patch_fetch.json` - patch 文件归档到 `.ace-outputs/{runId}/{issue_id}/patches/` 根目录不得写任何文件;不得生成 `02_patch_fetch.index.md/json` 或 `.ace-outputs/{runId}/patches/`。 Detailed output structure is in [references/patch-fetch-output.md](references/patch-fetch-output.md). ## Scripts 优先使用内置脚本抓取和校验 patch,不要在运行时重新生成临时 Python 脚本: ```bash python3 skills/arkweb-security-patch-fetch/scripts/fetch_chromium_patch.py \ --project-root <context.codebase> \ --output-root <context.projectRoot>/.ace-outputs/<runId> ``` 可选参数: - `--issue-id <issue_id>`:只处理单个 issue; - `--offline`:不联网,只根据 `upstream_fix_prs[]` 生成可复现抓取命令和阻塞说明。 脚本能力: - 扫描 `{issue_id}/01_issue_analysis.json`; - 强制输出目录只能是 `<context.projectRoot>/.ace-outputs/<runId>`,不能写到 ACEHarness run 日志目录;真实 ArkWeb 源码根使用 `context.codebase`; - 只使用 `upstream_fix_prs[]` 的第一个主修复候选,后续候选写入 `excluded_candidates[]`; - 支持 Chromium Gerrit CL 和 Gitiles commit patch URL; - 将 patch 写入 `{issue_id}/patches/`,并生成 `02_patch_fetch.md/json`; - 对 patch 内容做标准 diff 签名校验,避免 HTML、JSON metadata 或错误页被当成 patch。 裁决阶段可用独立校验脚本复查已有 `patch_files[]`: ```bash python3 skills/arkweb-security-patch-fetch/scripts/validate_patch_files.py \ --project-root <context.codebase> \ --output-root <context.projectRoot>/.ace-outputs/<runId> ``` 字段归属边界: - 本阶段必须填:确认的主修复 PR/CL、修改文件列表、本地 patch 文件、抓取命令、候选排除理由。 - 本阶段不得重写:Issue 基础字段、上游修复 PR/CL 的语义审计结论。 - 本阶段不得填最终值:ArkWeb affected/unaffected、责任田、特性树影响、是否建议保留。 ## 规则 - 优先直接获取 issue、upstream CL 或 PR 中明确指定的那个主修复。 - 不要补抓任何依赖 patch,哪怕它们在上游里被提及;只保留当前主修复本体。 - 不要把相似标题、同组件、同目录、同作者的其他 CL / PR 当成修复 patch。 - 不要把没有被主修复显式引用的候选 patch 混进结果里,哪怕它们看起来相关。 - 必须区分修复 PR/CL 和引入 bug 的 PR/CL;`culprit`、`bisect`、`introduced by`、`caused by`、`regression range`、`first bad` 等语义指向的 PR/CL 只能作为根因或版本范围证据,不得作为 patch 抓取对象。 - 如果 `upstream_fix_prs[]` 中的候选看起来是 bug-introducing PR/CL 而不是修复 PR/CL,必须在 excluded_candidates[] 记录并阻塞抓取,不得下载其 patch 当作修复。 - 如果当前主修复无法单独确认或无法直接获取,就明确失败,不要用其他 patch 补齐。 - 无法联网时,记录失败命令和需要人工提供的精确 patch 链接。 - 不要把不确定的 CL 当成修复 patch。 - 如果网络可用,Gerrit CL 可优先尝试 `https://chromium-review.googlesource.com/changes/{project}~{cl}/revisions/current/files` 获取文件列表,patch 可尝试 `.../revisions/current/patch?download` 或 Gerrit 下载链接;失败时记录 HTTP 状态和命令。 - patch 文件下载后必须做内容校验,不能只看 HTTP 命令返回、文件存在或文件大小: - 有效 `.patch/.diff` 必须包含标准 diff 信号之一:`diff --git`、`Index:`、`--- a/` + `+++ b/`、或 mbox patch 的 `From <hash>` + `Subject:` + diff hunks; - 如果内容是 HTML 错误页、`<!DOCTYPE html>`、`<html`、HTTP 错误文本、Gerrit/Gitiles 错误页、`)]}'` JSON metadata,必须标记为 invalid patch; - metadata JSON 只能作为 commit/file-list 辅助产物,不能填作可用 patch; - 只有通过内容校验的 patch/diff 文件才能在 `02_patch_fetch.md/json` 中写为“patch 已归档/可进入后续阶段”。
Auf GitHub ansehen