Used for arkweb-security-patch-impact-decider。
When to use this skill
Use this skill after issue analysis and patch fetch are complete. It maps upstream fix facts to the configured ArkWeb baseline and produces the final affected/unaffected/unknown decision, ownership routing, feature impact, risk and test recommendations.
Input
.ace-outputs/{runId}/{issue_id}/01_issue_analysis.md.ace-outputs/{runId}/{issue_id}/01_issue_analysis.json.ace-outputs/{runId}/{issue_id}/02_patch_fetch.md.ace-outputs/{runId}/{issue_id}/02_patch_fetch.json- Optional ArkWeb local repository path: used only when either the
context.automation.repoPath、context.codebaseor thecontext.projectRootfield in the current workflow context is explicitly configured; select the first non-empty valid path in that order. - Default responsibility field configuration:references/team_definition.yaml
- Default feature tree configuration:references/feature_tree_list.txt
- If
context.requirementsspecifies a project-specific responsibility field or feature tree configuration, the user-specified configuration takes precedence; otherwise, use the above default references. - The impact analysis field template is based on the built-in skill description and does not depend on external reference directories.
Analysis Entry
Impact analysis must start from three pieces of evidence and converge on a conclusion in order:
- Issue evidence: read
01_issue_analysis.*the issue fields, labels, comment timeline, Milestone, FoundIn, Merge-Request, Merge-Approved, Merged, FixedIn, fix clues, and security attributes extracted from the local HTML/MHTML, to determine the upstream problem context, version signals, and information gaps. - PR/CL evidence: read
02_patch_fetch.*the confirmed selected fix, Gerrit/Gitiles/PR/commit, patch, and modified_files, and verify which branches the fix actually landed on; this determines the status of mainline fixes, cherry-picks, release branches, branch-head, requested/approved/merged, and so on. - Project root directory code evidence: based on the
context.codebasein the current workflow context, inspect the current project code to confirm whether the corresponding files, symbols, call chains, compilation switches, platform trimming, or equivalent implementations exist; this determines whether the current ArkWeb project is affected.
The final report must write the basis for the conclusion as these three evidence chains:Issue -> PR/CL -> context.codebase 源码核验 -> ArkWeb 影响结论。
Output
Write to the same issue directory:
.ace-outputs/{runId}/{issue_id}/03_impact_decision.md.ace-outputs/{runId}/{issue_id}/03_impact_decision.json
No files may be written to the root directory; do not generate 03_impact_decision.index.md/json or root-level 03_impact_decision.md/json。
Detailed output structure is in references/impact-output.md.
Must cover:
- Chromium upstream affected version conclusion: clearly list which Chromium milestones, branches, or version ranges are affected by this vulnerability/fix; when it cannot be pinned down to a version, you must state
unknown。 - Basis for the Chromium version conclusion: cite evidence such as issue metadata, merge/milestone labels, fix CL/commit, branch-head, release notes, commit times, or the branch where the patch resides, and distinguish facts, inferences, and gaps.
Milestone/M-*/Target-*indicates the target fix milestone or the version intended to be resolved, and cannot by itself be equated with an "affected version" or a "fixed version".Labelsis a set of labels and must be broken down according to the meaning of each specific label;Type-*、Security_Severity-*, component labels cannot directly lead to a version impact conclusion.FoundIn-*indicates a confirmed affected milestone; when multiple exist, the earliestFoundIn-*is important evidence for the starting point of impact.Merge-Request-*/Request-*only indicates that a merge to the corresponding milestone branch was requested, and does not mean it has been approved or landed.Merge-Approved-*/Approved-*indicates that the merge request has been approved, and does not mean the cherry-pick has been committed to the branch.Merged-*, a cherry-pick commit on branch-head, or the commit record of the fix CL on the corresponding release branch, can serve as strong evidence that "the branch has been fixed".FixedIn-*can only serve as a supporting signal and must be cross-validated with the branch into which the fix CL/PR actually merged, the commit message, the cherry-pick source, or branch-head evidence.
- PR/CL branch merge verification: based on
02_patch_fetch.jsonselected fix, Gerrit/Gitiles/PR/commit links, and patch metadata in the issue to confirm the mainline commit, cherry-pick commit, target branch-head, or release branch; do not draw a final version conclusion based solely on the issue label. - The relative relationship between the current ArkWeb baseline and the upstream fix version.
- Based on the current workflow context's
context.codebaseperform local engineering source verification, checking whether the files, symbols, call chains, build switches, platform tailoring, or equivalent implementations corresponding to02_patch_fetch.json.modified_files[]exist. - Clearly state the current ArkWeb engineering conclusion:
affected、unaffected、unknownchoose one of the three, and explain its relationship with the Chromium version impact scope. - Every key conclusion must have a written evidence chain:
Issue 证据 -> PR/CL 实际合入分支或缺口 -> 当前 ArkWeb 源码核验证据 -> 结论。 - Affected modules, product surface, security, compatibility, stability, performance, RAM, ROM, and business logic correctness risks.
- Ownership assignment: the team name must be copied verbatim from the valid team names in the available ownership configuration.
- Affected features: the complete line must be copied verbatim from the available feature tree configuration, in the format
团队名 > 一级业务特性 > 二级业务特性 > 三级业务特性, and inventing paths is prohibited. - Fix priority, fix complexity, whether retention is recommended, whether testing is needed, and testing recommendations.
- If the issue is security-related, a dedicated security impact analysis must be output: vulnerability category, attack surface, trigger conditions, exploitability, security boundaries such as permissions/sandbox/privacy/certificates, consequences of not fixing, basis for the risk level, and security testing recommendations.
- If it is determined to be unaffected, auditable evidence must be provided; for security-related issues, it must also explain why the security chain is unreachable, why the corresponding code does not exist, or why the platform does not expose it.
Team and feature routing rules are in references/team-feature-routing.md. Use references/team_definition.yaml and references/feature_tree_list.txt as the default routing data.
Scripts
You may preferentially use scripts distilled from the verified logic of this archived workflow to generate 03_impact_decision.md/json, and do not regenerate temporary Python scripts at runtime:
python3 skills/arkweb-security-patch-impact/scripts/generate_impact_decision.py \
--project-root <context.codebase> \
--output-root <context.projectRoot>/.ace-outputs/<runId> \
--feature-tree skills/arkweb-security-patch-impact/references/feature_tree_list.txt
The script will read <context.projectRoot>/.ace-outputs/<runId>/{issue_id} in 01_issue_analysis.json and 02_patch_fetch.json, and write back to 03_impact_decision.md/jsonin the same directory. The script output directory uses context.projectRoot, and source verification uses context.codebase; the script only performs path matching, version evidence organization, preliminary ownership/feature tree judgment, and a security-specific skeleton. The agent must continue to review version branches, source semantics, and security impact, and must not treat script output as a final conclusion exempt from review.
Field ownership boundaries:
- At this stage, the Chromium upstream affected version range and its basis must first be provided, and then combined with
context.codebasethe current engineering source to give the ArkWeb impact conclusion. - At this stage, the actual merge branches of the PR/CL/commit already identified in the products of the first two steps must be reviewed; it is allowed to supplement verification of branches, commits, and cherry-pick relationships, but another main fix patch must not be reselected.
- At this stage, the following must be filled in: ArkWeb impact conclusion, the five properties/RAM/ROM/business correctness judgment, ownership, feature tree, risk level, retention recommendation, and testing recommendations.
- At this stage, only the products of the first two steps are read as factual basis; patches are not re-fetched, and the patch file list is not rewritten.
Note
- It is necessary to parse "whether forced merge: yes/no" from the Web page requirement description
context.requirements. If it parses as "yes", the truearkweb_impactand evidence chain must still be written truthfully, but03_impact_decision.jsonmust be written intomerge_policy.force_merge=true、merge_policy.impact_mode=force_affected、merge_policy.source=requirementsand the reason; if it parses as "no", it must be written intomerge_policy.force_merge=false。 - Do not draw conclusions based only on version numbers; it is necessary to combine file paths, build switches, and ArkWeb adaptation layer differences.
- Do not rely only on
Milestone、Merge-Request-*、Merge-Approved-*、FixedIn-*Conclusion at the individual information level; must be combined with the actual branch into which the PR/CL was merged and evidence from the current project source code. - It must not be taken that
context.automation.repoPathbeing empty alone is equivalent to no local repository path being configured; you must continue checkingcontext.codebase。 - When the ArkWeb local repository path is not explicitly configured, you must not access, reference, or guess any fixed local ArkWeb path; conclusions involving the existence of local code or patch apply/reverse-check should be marked as
unknownor pending verification. - Security-related issues cannot merely state “security-related: yes/no”; a dedicated analysis must be provided based on the ArkWeb exposure surface, patch modification paths, and runtime boundaries.
归属团队must exactly match a legal team name in the available responsibility field configuration.影响的特性must be copied verbatim as the complete line from the available feature tree configuration.