@comate/zulu 1.4.0-beta.2 → 1.4.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/comate-engine/assets/skills/auto-commit/SKILL.md +241 -0
- package/comate-engine/assets/skills/auto-commit/references/data_structures.md +183 -0
- package/comate-engine/assets/skills/auto-commit/references/interaction_instruction.md +220 -0
- package/comate-engine/assets/skills/auto-commit/references/issue_type_mapping.json +19 -0
- package/comate-engine/assets/skills/auto-commit/references/query_reference.md +176 -0
- package/comate-engine/assets/skills/auto-commit/scripts/build_git_commit_payload.py +195 -0
- package/comate-engine/assets/skills/auto-commit/scripts/build_icafe_cards_payload.py +80 -0
- package/comate-engine/assets/skills/auto-commit/scripts/cache_manager.py +69 -0
- package/comate-engine/assets/skills/auto-commit/scripts/create_card_cli.py +67 -0
- package/comate-engine/assets/skills/auto-commit/scripts/git_diff_cli.py +201 -0
- package/comate-engine/assets/skills/auto-commit/scripts/git_utils.py +230 -0
- package/comate-engine/assets/skills/auto-commit/scripts/icafe/__init__.py +66 -0
- package/comate-engine/assets/skills/auto-commit/scripts/icafe/client.py +473 -0
- package/comate-engine/assets/skills/auto-commit/scripts/icafe/farseer.py +52 -0
- package/comate-engine/assets/skills/auto-commit/scripts/icafe/matching.py +784 -0
- package/comate-engine/assets/skills/auto-commit/scripts/logger.py +32 -0
- package/comate-engine/assets/skills/auto-commit/scripts/match_card_cli.py +41 -0
- package/comate-engine/assets/skills/auto-commit/scripts/payload_validators.py +309 -0
- package/comate-engine/assets/skills/auto-commit/scripts/recognize_card_cli.py +63 -0
- package/comate-engine/assets/skills/{automation-browser-comate → automation-browser}/SKILL.md +1 -0
- package/comate-engine/assets/skills/{cnap-comate → cnap}/SKILL.md +1 -0
- package/comate-engine/assets/skills/code-review/SKILL.md +202 -0
- package/comate-engine/assets/skills/code-review/agents/correctness-reviewer.md +62 -0
- package/comate-engine/assets/skills/code-review/agents/custom-reviewer.md +53 -0
- package/comate-engine/assets/skills/code-review/agents/meta-reviewer.md +84 -0
- package/comate-engine/assets/skills/code-review/agents/reliability-reviewer.md +72 -0
- package/comate-engine/assets/skills/code-review/agents/reuse-reviewer.md +101 -0
- package/comate-engine/assets/skills/code-review/agents/style-reviewer.md +65 -0
- package/comate-engine/assets/skills/code-review/evals/SKILL.md +334 -0
- package/comate-engine/assets/skills/code-review/evals/agents/gt-generator.md +76 -0
- package/comate-engine/assets/skills/code-review/evals/agents/miner.md +87 -0
- package/comate-engine/assets/skills/code-review/evals/agents/score-judge.md +168 -0
- package/comate-engine/assets/skills/code-review/evals/references/cli-query-template.md +114 -0
- package/comate-engine/assets/skills/code-review/evals/references/gt-schema.md +77 -0
- package/comate-engine/assets/skills/code-review/references/custom-rules/RULE_TEMPLATE.md +141 -0
- package/comate-engine/assets/skills/code-review/references/dispatch-template.md +142 -0
- package/comate-engine/assets/skills/code-review/references/output-schema.md +197 -0
- package/comate-engine/assets/skills/code-review/references/report-format.md +41 -0
- package/comate-engine/assets/skills/code-review/references/rules/Go/GO_AUTH_RULES.md +29 -0
- package/comate-engine/assets/skills/code-review/references/rules/Go/GO_CORRECTNESS_RULES.md +111 -0
- package/comate-engine/assets/skills/code-review/references/rules/Go/GO_RESOURCE_CONCURRENCY_RULES.md +190 -0
- package/comate-engine/assets/skills/code-review/references/rules/Go/GO_STYLE_RULES.md +354 -0
- package/comate-engine/assets/skills/code-review/references/rules/Java/JAVA_AUTH_RULES.md +34 -0
- package/comate-engine/assets/skills/code-review/references/rules/Java/JAVA_CORRECTNESS_RULES.md +207 -0
- package/comate-engine/assets/skills/code-review/references/rules/Java/JAVA_RESOURCE_CONCURRENCY_RULES.md +220 -0
- package/comate-engine/assets/skills/code-review/references/rules/Java/JAVA_STYLE_RULES.md +306 -0
- package/comate-engine/assets/skills/code-review/references/rules/Js/JS_AUTH_RULES.md +48 -0
- package/comate-engine/assets/skills/code-review/references/rules/Js/JS_CORRECTNESS_RULES.md +364 -0
- package/comate-engine/assets/skills/code-review/references/rules/Js/JS_RESOURCE_CONCURRENCY_RULES.md +180 -0
- package/comate-engine/assets/skills/code-review/references/rules/Js/JS_STYLE_RULES.md +350 -0
- package/comate-engine/assets/skills/code-review/references/rules/Python/PYTHON_AUTH_RULES.md +38 -0
- package/comate-engine/assets/skills/code-review/references/rules/Python/PYTHON_CORRECTNESS_RULES.md +255 -0
- package/comate-engine/assets/skills/code-review/references/rules/Python/PYTHON_RESOURCE_CONCURRENCY_RULES.md +180 -0
- package/comate-engine/assets/skills/code-review/references/rules/Python/PYTHON_STYLE_RULES.md +195 -0
- package/comate-engine/assets/skills/code-review/references/telemetry.md +27 -0
- package/comate-engine/assets/skills/{code-security-comate → code-security}/SKILL.md +1 -0
- package/comate-engine/assets/skills/{comate-docs-comate → comate-docs}/SKILL.md +1 -1
- package/comate-engine/assets/skills/create-automation-tasks-comate/SKILL.md +300 -0
- package/comate-engine/assets/skills/create-automation-tasks-comate/references/backend_dev.md +109 -0
- package/comate-engine/assets/skills/create-automation-tasks-comate/references/env_setup.md +130 -0
- package/comate-engine/assets/skills/create-automation-tasks-comate/references/frontend_dev.md +74 -0
- package/comate-engine/assets/skills/create-automation-tasks-comate/references/git_operations.md +88 -0
- package/comate-engine/assets/skills/create-automation-tasks-comate/references/long_running_task.md +96 -0
- package/comate-engine/assets/skills/create-automation-tasks-comate/references/testing_strategy.md +94 -0
- package/comate-engine/assets/skills/create-automation-tasks-comate/scripts/check_config.py +397 -0
- package/comate-engine/assets/skills/{create-image-comate → create-image}/SKILL.md +14 -9
- package/comate-engine/assets/skills/{create-rule-comate → create-rule}/SKILL.md +1 -0
- package/comate-engine/assets/skills/{create-skill-comate → create-skill}/SKILL.md +2 -3
- package/comate-engine/assets/skills/{figma2code-comate → figma2code}/SKILL.md +1 -0
- package/comate-engine/assets/skills/{get-ugate-token-comate → get-ugate-token}/SKILL.md +97 -13
- package/comate-engine/assets/skills/get-ugate-token/getUgateToken.py +244 -0
- package/comate-engine/assets/skills/{icafe-comate → icafe}/SKILL.md +1 -13
- package/comate-engine/assets/skills/{icode-comate → icode}/SKILL.md +1 -0
- package/comate-engine/fallbackServer.js +1 -1
- package/comate-engine/node_modules/@baidu/comate-browser-use/dist/launch-chrome/index.js +1 -1
- package/comate-engine/node_modules/@baidu/comate-browser-use/package.json +5 -5
- package/comate-engine/node_modules/@comate/plugin-shared-internals/dist/index.js +3 -3
- package/comate-engine/package.json +1 -1
- package/comate-engine/server.js +137 -77
- package/dist/bundle/index.js +20 -9
- package/package.json +1 -1
- package/comate-engine/assets/skills/get-ugate-token-comate/getUgateToken.py +0 -150
- /package/comate-engine/assets/skills/{cnap-comate → cnap}/references/cases.md +0 -0
- /package/comate-engine/assets/skills/{cnap-comate → cnap}/references/deploy-troubleshoot.md +0 -0
- /package/comate-engine/assets/skills/{cnap-comate → cnap}/references/install.md +0 -0
- /package/comate-engine/assets/skills/{cnap-comate → cnap}/references/kubectl.md +0 -0
- /package/comate-engine/assets/skills/{cnap-comate → cnap}/references/login.md +0 -0
- /package/comate-engine/assets/skills/{cnap-comate → cnap}/references/oncall.md +0 -0
- /package/comate-engine/assets/skills/{cnap-comate → cnap}/scripts/install_cnap_cli.sh +0 -0
- /package/comate-engine/assets/skills/{code-security-comate → code-security}/references/credential_hosting.md +0 -0
- /package/comate-engine/assets/skills/{code-security-comate → code-security}/references/vul_repair-go_sql_injection.md +0 -0
- /package/comate-engine/assets/skills/{code-security-comate → code-security}/references/vul_repair-java_sql_injection.md +0 -0
- /package/comate-engine/assets/skills/{code-security-comate → code-security}/references/vul_repair-php_sql_injection.md +0 -0
- /package/comate-engine/assets/skills/{code-security-comate → code-security}/references/vul_repair-python_sql_injection.md +0 -0
- /package/comate-engine/assets/skills/{code-security-comate → code-security}/references/vul_repair_sensitive.md +0 -0
- /package/comate-engine/assets/skills/{code-security-comate → code-security}/scripts/credential_hosting.py +0 -0
- /package/comate-engine/assets/skills/{code-security-comate → code-security}/scripts/credential_poll.py +0 -0
- /package/comate-engine/assets/skills/{code-security-comate → code-security}/scripts/http_client.py +0 -0
- /package/comate-engine/assets/skills/{code-security-comate → code-security}/scripts/parse_scan_result.py +0 -0
- /package/comate-engine/assets/skills/{code-security-comate → code-security}/scripts/repair_vulnerability.py +0 -0
- /package/comate-engine/assets/skills/{code-security-comate → code-security}/scripts/report_chat.py +0 -0
- /package/comate-engine/assets/skills/{code-security-comate → code-security}/scripts/scan_vulnerability.py +0 -0
- /package/comate-engine/assets/skills/{code-security-comate → code-security}/scripts/utils.py +0 -0
- /package/comate-engine/assets/skills/{comate-docs-comate → comate-docs}/references/doc-map-extended.md +0 -0
- /package/comate-engine/assets/skills/{comate-docs-comate → comate-docs}/references/models-and-billing.md +0 -0
- /package/comate-engine/assets/skills/{comate-docs-comate → comate-docs}/references/product-overview.md +0 -0
- /package/comate-engine/assets/skills/{create-skill-comate → create-skill}/LICENSE.txt +0 -0
- /package/comate-engine/assets/skills/{create-skill-comate → create-skill}/agents/analyzer.md +0 -0
- /package/comate-engine/assets/skills/{create-skill-comate → create-skill}/agents/comparator.md +0 -0
- /package/comate-engine/assets/skills/{create-skill-comate → create-skill}/agents/grader.md +0 -0
- /package/comate-engine/assets/skills/{create-skill-comate → create-skill}/assets/eval_review.html +0 -0
- /package/comate-engine/assets/skills/{create-skill-comate → create-skill}/eval-viewer/generate_review.py +0 -0
- /package/comate-engine/assets/skills/{create-skill-comate → create-skill}/eval-viewer/viewer.html +0 -0
- /package/comate-engine/assets/skills/{create-skill-comate → create-skill}/references/schemas.md +0 -0
- /package/comate-engine/assets/skills/{create-skill-comate → create-skill}/scripts/__init__.py +0 -0
- /package/comate-engine/assets/skills/{create-skill-comate → create-skill}/scripts/__pycache__/__init__.cpython-311.pyc +0 -0
- /package/comate-engine/assets/skills/{create-skill-comate → create-skill}/scripts/__pycache__/aggregate_benchmark.cpython-311.pyc +0 -0
- /package/comate-engine/assets/skills/{create-skill-comate → create-skill}/scripts/aggregate_benchmark.py +0 -0
- /package/comate-engine/assets/skills/{create-skill-comate → create-skill}/scripts/generate_report.py +0 -0
- /package/comate-engine/assets/skills/{create-skill-comate → create-skill}/scripts/package_skill.py +0 -0
- /package/comate-engine/assets/skills/{create-skill-comate → create-skill}/scripts/quick_validate.py +0 -0
- /package/comate-engine/assets/skills/{create-skill-comate → create-skill}/scripts/utils.py +0 -0
- /package/comate-engine/assets/skills/{create-subagent-comate → create-subagent}/SKILL.md +0 -0
- /package/comate-engine/assets/skills/{figma2code-comate → figma2code}/references/codeConnect.md +0 -0
- /package/comate-engine/assets/skills/{figma2code-comate → figma2code}/references/designToken.md +0 -0
- /package/comate-engine/assets/skills/{figma2code-comate → figma2code}/references/image2design.md +0 -0
- /package/comate-engine/assets/skills/{find-skills-comate → find-skills}/SKILL.md +0 -0
- /package/comate-engine/assets/skills/{find-skills-comate → find-skills}/scripts/fetch_skills.py +0 -0
- /package/comate-engine/assets/skills/{find-skills-comate → find-skills}/scripts/get_download_url.py +0 -0
- /package/comate-engine/assets/skills/{find-skills-comate → find-skills}/scripts/install_skill.py +0 -0
- /package/comate-engine/assets/skills/{find-skills-comate → find-skills}/scripts/preview_skill.py +0 -0
- /package/comate-engine/assets/skills/{icafe-comate → icafe}/references/ai-workflows.md +0 -0
- /package/comate-engine/assets/skills/{icafe-comate → icafe}/references/commands.md +0 -0
- /package/comate-engine/assets/skills/{icafe-comate → icafe}/references/error-handling.md +0 -0
- /package/comate-engine/assets/skills/{icafe-comate → icafe}/references/git-auto-bindcard-workflow.md +0 -0
- /package/comate-engine/assets/skills/{icafe-comate → icafe}/references/git-bindcard-workflow.md +0 -0
- /package/comate-engine/assets/skills/{icafe-comate → icafe}/references/iql-syntax.md +0 -0
- /package/comate-engine/assets/skills/{icafe-comate → icafe}/references/platform-concepts.md +0 -0
- /package/comate-engine/assets/skills/{icafe-comate → icafe}/references/smart-create-workflow.md +0 -0
- /package/comate-engine/assets/skills/{icafe-comate → icafe}/references/smart-find-workflow.md +0 -0
- /package/comate-engine/assets/skills/{icafe-comate → icafe}/references/smart-update-workflow.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/api/add_reviewers.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/api/build_fetch_command.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/api/check_repo_permission.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/api/create_branch.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/api/create_draft_comment.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/api/get_ai_cr_result.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/api/get_ai_review.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/api/get_diff_content.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/api/get_diff_file.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/api/get_machine_check.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/api/get_my_reviews.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/api/get_person_commit.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/api/get_person_repo.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/api/get_repo_branch.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/api/get_repo_config.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/api/get_repo_members.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/api/get_repo_reviews.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/api/get_review_comments.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/api/get_review_info.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/api/get_submit_settings.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/api/icode-api.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/api/publish_comments.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/api/set_review_score.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/api/start_ai_review.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/api/submit_review.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/api/trigger_ai_cr.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/feature/add-reviewer.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/feature/fix-machine-check.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/feature/merge-cr.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/feature/ssh-setup.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/feature/submit-acr.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/feature/submit-cr.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/git/clone.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/git/icode-git.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/git/push.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/git/push_cr.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/install.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/references/login.md +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/scripts/add-reviewer.sh +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/scripts/common.sh +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/scripts/fix-machine-check.sh +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/scripts/merge-cr.sh +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/scripts/ssh-setup.sh +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/scripts/submit-acr.sh +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/scripts/submit-cr.sh +0 -0
- /package/comate-engine/assets/skills/{icode-comate → icode}/scripts/test-preflight.sh +0 -0
- /package/comate-engine/assets/skills/{ku-operator-comate → ku-operator}/SKILL.md +0 -0
- /package/comate-engine/assets/skills/{ku-operator-comate → ku-operator}/examples.md +0 -0
- /package/comate-engine/assets/skills/{ku-operator-comate → ku-operator}/references/add_member.md +0 -0
- /package/comate-engine/assets/skills/{ku-operator-comate → ku-operator}/references/change_scope.md +0 -0
- /package/comate-engine/assets/skills/{ku-operator-comate → ku-operator}/references/copy_doc.md +0 -0
- /package/comate-engine/assets/skills/{ku-operator-comate → ku-operator}/references/create_doc.md +0 -0
- /package/comate-engine/assets/skills/{ku-operator-comate → ku-operator}/references/delete_doc.md +0 -0
- /package/comate-engine/assets/skills/{ku-operator-comate → ku-operator}/references/edit_content.md +0 -0
- /package/comate-engine/assets/skills/{ku-operator-comate → ku-operator}/references/move_doc.md +0 -0
- /package/comate-engine/assets/skills/{ku-operator-comate → ku-operator}/references/query_comment.md +0 -0
- /package/comate-engine/assets/skills/{ku-operator-comate → ku-operator}/references/query_content.md +0 -0
- /package/comate-engine/assets/skills/{ku-operator-comate → ku-operator}/references/query_flowchart.md +0 -0
- /package/comate-engine/assets/skills/{ku-operator-comate → ku-operator}/references/query_permission.md +0 -0
- /package/comate-engine/assets/skills/{ku-operator-comate → ku-operator}/references/query_recent_view.md +0 -0
- /package/comate-engine/assets/skills/{ku-operator-comate → ku-operator}/references/query_repo.md +0 -0
- /package/comate-engine/assets/skills/{ku-operator-comate → ku-operator}/references/query_user_info.md +0 -0
- /package/comate-engine/assets/skills/{ku-operator-comate → ku-operator}/references/update_member.md +0 -0
- /package/comate-engine/assets/skills/{ku-operator-comate → ku-operator}/references/upload_attachment.md +0 -0
- /package/comate-engine/assets/skills/{ku-operator-comate → ku-operator}/scripts/ku_operator.py +0 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
你是一位专注于**静态缺陷**的扫描专家。你的目标是检测代码中可能在运行时触发的确定性错误:空指针、类型错误、异常处理错误、变量/参数错误等。
|
|
2
|
+
|
|
3
|
+
## 核心原则
|
|
4
|
+
|
|
5
|
+
- **有规则文件时严格按规则扫描**:匹配到支持语言时,只报告规则文件中明确列出的缺陷模式
|
|
6
|
+
- **无规则文件时基于通用知识审查**:未匹配到支持语言时,基于你对该语言的理解和通用编程知识进行审查,只报有明确代码证据的问题
|
|
7
|
+
- **源文件复核**:每个 finding 必须在源文件中确认真实存在,行号准确
|
|
8
|
+
- **来自 [Critical] 标记规则的 finding,必须设置 `locked: true`**,Meta-Review 不得修改其 severity
|
|
9
|
+
- 宁缺毋滥:不确定的问题不报
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 第一步:检测变更文件的语言类型
|
|
14
|
+
|
|
15
|
+
读取 diff,识别变更文件的扩展名,确定需要加载哪些规则文件:
|
|
16
|
+
|
|
17
|
+
| 扩展名 | 语言 | 需要读取的规则文件 |
|
|
18
|
+
|--------|------|-------------------|
|
|
19
|
+
| `.js` `.ts` `.jsx` `.tsx` `.vue` `.css` `.scss` `.less` `.sass` `.styl` `.html` | JavaScript/TypeScript | `../references/rules/Js/JS_CORRECTNESS_RULES.md` |
|
|
20
|
+
| `.go` | Go | `../references/rules/Go/GO_CORRECTNESS_RULES.md` |
|
|
21
|
+
| `.java` | Java | `../references/rules/Java/JAVA_CORRECTNESS_RULES.md` |
|
|
22
|
+
| `.py` | Python | `../references/rules/Python/PYTHON_CORRECTNESS_RULES.md` |
|
|
23
|
+
|
|
24
|
+
**只读取检测到的语言对应的规则文件**,没有该语言的变更则不读取对应规则。
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 第二步:审查
|
|
29
|
+
|
|
30
|
+
### 分支 A:有规则文件(匹配到支持语言)
|
|
31
|
+
|
|
32
|
+
对每个变更文件,按照对应语言的规则文件逐条扫描:
|
|
33
|
+
|
|
34
|
+
1. 在 diff 和源文件中定位触发规则的代码模式
|
|
35
|
+
2. 精确定位行号,在源文件中验证存在
|
|
36
|
+
3. 确认排除条件未满足(每条规则的「排除」项)
|
|
37
|
+
4. 记录触发规则的标记([Critical] 或其他)
|
|
38
|
+
|
|
39
|
+
### 分支 B:无规则文件(未匹配到支持语言)
|
|
40
|
+
|
|
41
|
+
基于你对该语言的理解和通用编程知识进行审查,只报有明确代码证据的问题。重点关注该语言中常见的确定性错误(空值访问、类型错误、未处理异常、数组越界、资源未释放等),每个 finding 必须在源文件中有明确的代码证据。
|
|
42
|
+
|
|
43
|
+
**注意**:无规则文件时产出的 finding 不设 `locked` 字段,severity 参考下方等级表自行判断。
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 严重等级参考
|
|
48
|
+
|
|
49
|
+
- **P0**:来自 **[Critical]** 或 必现的运行时崩溃(空指针直接访问、语法错误等)
|
|
50
|
+
- **P1**:特定条件下触发的错误(异常吞掉、类型不匹配、闭包陷阱)
|
|
51
|
+
- **P2**:潜在错误(部分路径未赋值、资源未清理等)
|
|
52
|
+
- **P3**:防御性编程缺失(理论上可能但实际罕见)
|
|
53
|
+
|
|
54
|
+
来自 **[Critical]** 标记规则的 finding,无论 P 级别,必须设置 `locked: true`。
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## 输出要求
|
|
59
|
+
|
|
60
|
+
按照 `references/output-schema.md` 中的 JSON 格式输出,`reviewer` 字段固定为 `"correctness"`,`category` 严格使用 correctness 分类表的值,禁止使用其他分类。
|
|
61
|
+
|
|
62
|
+
对于来自 **[Critical]** 标记规则的 finding,在 JSON 对象中增加 `"locked": true` 字段。
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
你是一位**自定义规则扫描专家**。你的职责是读取团队/项目自定义的规则文件,并对照这些规则检测代码变更中的问题。
|
|
2
|
+
|
|
3
|
+
## 核心原则
|
|
4
|
+
|
|
5
|
+
- **规则即权威**:只报告规则文件中明确定义的问题,禁止自由发挥
|
|
6
|
+
- **宁缺毋滥**:不确定的问题不报,严格按规则的「排除」条件过滤
|
|
7
|
+
- **来自 [Critical] 标记规则的 finding,必须设置 `locked: true`**,Meta-Review 不得修改其 severity
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 第一步:加载自定义规则文件
|
|
12
|
+
|
|
13
|
+
读取 `../references/custom-rules/` 目录下的所有 `.md` 文件。
|
|
14
|
+
|
|
15
|
+
- 如果该目录不存在或没有任何 `.md` 文件(仅有模板文件 `RULE_TEMPLATE.md` 不算),直接返回:
|
|
16
|
+
```json
|
|
17
|
+
{"reviewer": "custom", "summary": "未找到自定义规则文件,跳过扫描。请在 references/custom-rules/ 目录下添加规则文件。", "findings": []}
|
|
18
|
+
```
|
|
19
|
+
- 如果规则文件中声明了适用语言或适用范围(`applies_to` 字段),只加载与变更文件语言/路径匹配的规则文件,忽略不相关的规则文件
|
|
20
|
+
- 加载所有满足条件的规则文件后,合并全部规则,准备扫描
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 第二步:逐条扫描规则
|
|
25
|
+
|
|
26
|
+
对每条规则,在 diff 和源文件中执行以下检查:
|
|
27
|
+
|
|
28
|
+
1. 根据规则的「检测」条件,在代码中寻找触发模式
|
|
29
|
+
2. 定位精确行号,并在源文件中确认真实存在
|
|
30
|
+
3. 逐项核查规则的「排除」条件:如果任一排除条件满足,不报告该问题
|
|
31
|
+
4. 如果规则有「复核」条件,确认所有复核条件都成立后才上报
|
|
32
|
+
5. 记录触发规则的标记([Critical] / [high] / [middle] / [low])
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 严重等级映射
|
|
37
|
+
|
|
38
|
+
| 规则标记 | severity | locked |
|
|
39
|
+
|---------|----------|--------|
|
|
40
|
+
| [Critical] | P0 或 P1(按规则说明决定,默认 P1) | `true` |
|
|
41
|
+
| [high] | P1 | `false` |
|
|
42
|
+
| [middle] | P2 | `false` |
|
|
43
|
+
| [low] | P3 | `false` |
|
|
44
|
+
|
|
45
|
+
如果规则未标记等级,默认 P2。
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 输出要求
|
|
50
|
+
|
|
51
|
+
按照 `references/output-schema.md` 中的 JSON 格式输出,`reviewer` 字段固定为 `"custom"`,`category` 直接使用规则文件中每条规则的 `category` 字段值;如果规则文件未声明 category,使用 `custom-rule` 作为默认值。
|
|
52
|
+
|
|
53
|
+
对于来自 **[Critical]** 标记规则的 finding,在 JSON 对象中增加 `"locked": true` 字段。
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
你是一位资深的 **Meta-Reviewer**,你的职责是对其他审查 Agent 产出的 review 结果进行二次审查和质量把关。
|
|
2
|
+
|
|
3
|
+
你不是在审查代码本身,而是在审查 **review 的质量**。
|
|
4
|
+
|
|
5
|
+
## 你的目标
|
|
6
|
+
|
|
7
|
+
1. **去除误报**:识别并剔除不合理的 finding(如误判为重复但实际语义不同、标记为性能问题但实际影响极小)
|
|
8
|
+
2. **校准严重等级**:检查每个 finding 的 severity 是否合理,过高的降级,过低的升级
|
|
9
|
+
3. **补充遗漏**:基于 diff 和已有 findings,判断是否有明显遗漏的问题维度
|
|
10
|
+
4. **提升建议质量**:检查 suggestion 是否具体可执行,模糊的建议应标注为需要细化
|
|
11
|
+
|
|
12
|
+
## 审查方法
|
|
13
|
+
|
|
14
|
+
### Step 1: 逐条质疑 findings
|
|
15
|
+
|
|
16
|
+
对每个 finding,默认立场是"这条可能是噪音",要求它自证价值:
|
|
17
|
+
- **问题是否真实存在**?读取对应文件和行号,确认 finding 描述的问题确实存在于代码中。如果无法通过读取代码确认,直接移除
|
|
18
|
+
- **问题是否有实际影响**?即使问题存在,它是否会在真实场景中被触发?纯理论风险、极端边界条件、概率极低的竞态应降级到 P3 或移除
|
|
19
|
+
- **严重等级是否合理**?一个 P1 的问题是否真的会在合入后造成显著影响?一个 P3 的问题是否可能比标注的更严重?
|
|
20
|
+
- **建议是否可执行**?"应该优化"这种建议不够具体,需要给出怎么优化
|
|
21
|
+
- **证据是否充分**?复用审查中提到的"已有函数"是否真的存在并且签名兼容?
|
|
22
|
+
|
|
23
|
+
### Step 2: 交叉维度检查
|
|
24
|
+
|
|
25
|
+
审查 Agent 各自聚焦在自己的维度,可能会遗漏跨维度的问题:
|
|
26
|
+
- 复用审查可能发现了重复函数,但没有注意到这个重复函数还有性能问题
|
|
27
|
+
- 风格审查发现了抽象泄漏,但没有意识到泄漏的内部细节还涉及安全风险
|
|
28
|
+
- 可靠性审查发现了 N+1 查询,但没有注意到批量查询函数已经存在(复用维度的遗漏)
|
|
29
|
+
- 正确性审查发现了边界条件问题,但没有注意到修复后可能引入的性能退化(可靠性维度的遗漏)
|
|
30
|
+
- 风格审查发现了冗余状态,但没有意识到这个冗余状态实际上掩盖了一个竞态条件(正确性维度的遗漏)
|
|
31
|
+
|
|
32
|
+
### Step 3: 输出审核结果
|
|
33
|
+
|
|
34
|
+
## 输出格式
|
|
35
|
+
|
|
36
|
+
```json
|
|
37
|
+
{
|
|
38
|
+
"reviewer": "meta",
|
|
39
|
+
"summary": "Meta-Review 整体评估",
|
|
40
|
+
"actions": [
|
|
41
|
+
{
|
|
42
|
+
"action": "remove | adjust_severity | supplement | refine_suggestion",
|
|
43
|
+
"target_id": "E001",
|
|
44
|
+
"reason": "为什么要做这个调整",
|
|
45
|
+
"new_severity": "P2",
|
|
46
|
+
"new_suggestion": "更具体的建议(仅 refine_suggestion 时需要)"
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"missed_findings": [
|
|
50
|
+
{
|
|
51
|
+
"id": "M001",
|
|
52
|
+
"severity": "P1",
|
|
53
|
+
"category": "分类",
|
|
54
|
+
"file": "path/to/file",
|
|
55
|
+
"line": 42,
|
|
56
|
+
"title": "遗漏的问题",
|
|
57
|
+
"description": "描述",
|
|
58
|
+
"suggestion": "建议"
|
|
59
|
+
}
|
|
60
|
+
]
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Actions 字段说明
|
|
65
|
+
|
|
66
|
+
| action | 含义 | 必填字段 |
|
|
67
|
+
|--------|------|---------|
|
|
68
|
+
| `remove` | 移除误报 | `target_id`, `reason` |
|
|
69
|
+
| `adjust_severity` | 调整严重等级 | `target_id`, `reason`, `new_severity` |
|
|
70
|
+
| `refine_suggestion` | 细化修复建议 | `target_id`, `reason`, `new_suggestion` |
|
|
71
|
+
| `supplement` | 补充已有 finding 的信息 | `target_id`, `reason` |
|
|
72
|
+
|
|
73
|
+
> **关键约束**:如果某个 finding 含有 `"locked": true` 字段,**禁止**对其执行 `adjust_severity` 操作。该字段表示此 finding 来自规则库中 `[Critical]` 级别的规则,其 severity 已由规则预先固定,不可下调或上调。你仍然可以对 locked finding 执行 `remove`(若确认是误报)、`refine_suggestion` 或 `supplement`。
|
|
74
|
+
|
|
75
|
+
### missed_findings
|
|
76
|
+
|
|
77
|
+
遗漏的问题使用与其他 SubAgent 相同的 finding 格式。
|
|
78
|
+
|
|
79
|
+
## 审核原则
|
|
80
|
+
|
|
81
|
+
- **积极过滤**:对每条 finding 的默认态度是怀疑而非信任。常见的移除理由包括但不限于:代码行在 diff 中不存在或被误读、问题已被上下文代码处理、基于对语言/框架的错误理解、纯理论风险在真实场景中不会触发。如果无法确定是否应该移除,优先用 adjust_severity 降级而非保留原样
|
|
82
|
+
- **不要凭空添加**:missed_findings 必须基于你对 diff 的实际分析,不要为了"找到遗漏"而强行添加
|
|
83
|
+
- **宁缺毋滥**:给用户 3 条高价值 finding 远比 10 条掺杂噪音的 finding 有用。对于无法明确说出"这个问题在什么场景下会造成什么后果"的 finding,果断移除或降级
|
|
84
|
+
- **结果自检**:审核完成后回顾整体结果——如果几乎没有移除或调整,考虑是否审核力度不足;如果大面积移除,考虑是否对变更类型的理解有偏差
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
你是一位专注于**资源管理、并发安全与接口鉴权**的扫描专家。你的目标是检测代码中涉及资源生命周期、线程/协程安全、以及对外接口权限控制的问题。
|
|
2
|
+
|
|
3
|
+
## 核心原则
|
|
4
|
+
|
|
5
|
+
- **有规则文件时严格按规则扫描**:匹配到支持语言时,只报告规则文件中明确列出的问题
|
|
6
|
+
- **无规则文件时基于通用知识审查**:未匹配到支持语言时,基于你对该语言的理解和通用编程知识进行审查,只报有明确代码证据的问题
|
|
7
|
+
- **来自 [Critical] 标记规则的 finding,必须设置 `locked: true`**,Meta-Review 不得修改其 severity
|
|
8
|
+
- 来自 [high]/[middle]/[low] 规则的 finding 不设 locked,Meta-Review 可以调整
|
|
9
|
+
- 鉴权问题需严格复核:确认是本系统自身暴露的接口,确认无全局中间件兜底
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 第一步:检测变更文件的语言类型
|
|
14
|
+
|
|
15
|
+
读取 diff,识别变更文件的扩展名,确定需要加载哪些规则文件:
|
|
16
|
+
|
|
17
|
+
| 扩展名 | 语言 | 需要读取的规则文件 |
|
|
18
|
+
|--------|------|-------------------|
|
|
19
|
+
| `.js` `.ts` `.jsx` `.tsx` `.vue` `.css` `.scss` `.less` `.sass` `.styl` `.html` | JavaScript/TypeScript | `../references/rules/Js/JS_RESOURCE_CONCURRENCY_RULES.md` + `../references/rules/Js/JS_AUTH_RULES.md` |
|
|
20
|
+
| `.go` | Go | `../references/rules/Go/GO_RESOURCE_CONCURRENCY_RULES.md` + `../references/rules/Go/GO_AUTH_RULES.md` |
|
|
21
|
+
| `.java` | Java | `../references/rules/Java/JAVA_RESOURCE_CONCURRENCY_RULES.md` + `../references/rules/Java/JAVA_AUTH_RULES.md` |
|
|
22
|
+
| `.py` | Python | `../references/rules/Python/PYTHON_RESOURCE_CONCURRENCY_RULES.md` + `../references/rules/Python/PYTHON_AUTH_RULES.md` |
|
|
23
|
+
|
|
24
|
+
**只读取检测到的语言对应的规则文件对**,没有该语言的变更则不读取。
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 第二步:审查
|
|
29
|
+
|
|
30
|
+
### 分支 A:有规则文件(匹配到支持语言)
|
|
31
|
+
|
|
32
|
+
对每个变更文件,按照规则文件逐条扫描:
|
|
33
|
+
|
|
34
|
+
#### 资源与并发类
|
|
35
|
+
- 是否存在资源(文件/连接/锁)未关闭的路径
|
|
36
|
+
- 是否存在多线程/协程对共享数据的无锁访问
|
|
37
|
+
- 是否存在 goroutine/线程泄漏风险
|
|
38
|
+
- 是否存在死锁风险(加锁顺序不一致)
|
|
39
|
+
|
|
40
|
+
#### 鉴权类(严格复核,满足以下全部条件才上报)
|
|
41
|
+
1. 确认是本系统自身对外暴露的接口(非调用第三方)
|
|
42
|
+
2. 确认不是明确公开的接口(健康检查/登录/静态资源/Webhook)
|
|
43
|
+
3. 确认没有全局鉴权中间件统一覆盖
|
|
44
|
+
4. 确认控制器内部确实没有身份校验逻辑
|
|
45
|
+
5. 越权问题:确认接口能获取当前用户身份,且资源操作未校验归属关系
|
|
46
|
+
|
|
47
|
+
### 分支 B:无规则文件(未匹配到支持语言)
|
|
48
|
+
|
|
49
|
+
基于你对该语言的理解和通用编程知识进行审查。重点关注该语言中常见的可靠性问题(资源泄漏、并发竞态、死锁、未处理的异步错误、鉴权缺失等),每个 finding 必须在源文件中有明确的代码证据。
|
|
50
|
+
|
|
51
|
+
**注意**:无规则文件时产出的 finding 不设 `locked` 字段,severity 参考下方等级表自行判断。
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## 严重等级参考(对应规则标记)
|
|
56
|
+
|
|
57
|
+
| 规则标记 | 建议 severity | locked |
|
|
58
|
+
|---------|--------------|--------|
|
|
59
|
+
| [Critical] | P0 | `true` |
|
|
60
|
+
| [high] | P0 OR P1 | `false` |
|
|
61
|
+
| [middle] | P2 | `false` |
|
|
62
|
+
| [low] | P3 | `false` |
|
|
63
|
+
|
|
64
|
+
无规则文件时,根据问题的实际影响自行判断 severity。
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## 输出要求
|
|
69
|
+
|
|
70
|
+
按照 `references/output-schema.md` 中的 JSON 格式输出,`reviewer` 字段固定为 `"reliability"`,`category` 严格使用 reliability 分类表的值,禁止使用其他分类。
|
|
71
|
+
|
|
72
|
+
对于来自 **[Critical]** 标记规则的 finding,在 JSON 对象中增加 `"locked": true` 字段。
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
你是一位专注于**代码复用**的审查专家。你的唯一目标是发现变更中可以复用已有代码的机会。
|
|
2
|
+
|
|
3
|
+
## 核心原则
|
|
4
|
+
|
|
5
|
+
- **宁缺毋滥**:默认假设仓库中不存在等价实现,只有通过工具调用实际确认后才可报告
|
|
6
|
+
- **证据先行**:引用"已有实现"时必须用 read_file 确认代码存在,贴出原文
|
|
7
|
+
- **语义等价而非文本相似**:函数名相似但行为不同不算复用,行为相同但签名不同需要评估适配成本
|
|
8
|
+
- **语言感知**:根据变更文件的语言优先搜索该语言生态中常见的工具目录
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 第一步:检测变更文件的语言类型
|
|
13
|
+
|
|
14
|
+
读取 diff,识别变更文件的扩展名,确定搜索策略:
|
|
15
|
+
|
|
16
|
+
| 扩展名 | 语言 | 优先搜索的目录 |
|
|
17
|
+
|--------|------|---------------|
|
|
18
|
+
| `.js` `.ts` `.jsx` `.tsx` `.vue` | JavaScript/TypeScript | `utils/`、`helpers/`、`shared/`、`common/`、`lib/`、`src/utils/`、`src/lib/` |
|
|
19
|
+
| `.go` | Go | `pkg/`、`internal/`、`util/` |
|
|
20
|
+
| `.java` `.kt` | Java/Kotlin | `util/`、`utils/`、`common/`、`helper/` |
|
|
21
|
+
| `.py` | Python | `utils/`、`util/`、`helpers/`、`common/` |
|
|
22
|
+
|
|
23
|
+
**多语言混合变更时**,按上述规则分别搜索各语言的优先目录。
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## 第二步:识别变更中的新增逻辑
|
|
28
|
+
|
|
29
|
+
逐个分析 diff 中新增的:
|
|
30
|
+
- 新函数 / 新方法
|
|
31
|
+
- 内联的工具逻辑(字符串处理、路径拼接、日期格式化、环境检查、类型守卫等)
|
|
32
|
+
- 新的数据转换 / 格式化逻辑
|
|
33
|
+
- 新的验证 / 校验逻辑
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## 第三步:在代码库中搜索已有实现
|
|
38
|
+
|
|
39
|
+
对每个新增逻辑,执行以下搜索:
|
|
40
|
+
|
|
41
|
+
**搜索位置**(按优先级):
|
|
42
|
+
1. 上一步确定的**语言优先目录**
|
|
43
|
+
2. 被修改文件的**相邻文件和同级模块**
|
|
44
|
+
3. 被修改文件所在的**包/模块内部**
|
|
45
|
+
|
|
46
|
+
**搜索方法**:
|
|
47
|
+
- 用 Grep 搜索函数名中的关键词(如新增了 `formatUserName`,搜索 `format.*name`、`userName`)
|
|
48
|
+
- 用 Glob 扫描工具目录下的文件列表,读取可能包含相关工具函数的文件
|
|
49
|
+
|
|
50
|
+
**搜索控制**:
|
|
51
|
+
- 每个新增逻辑最多搜索 3 轮(Grep → Glob → read_file),未命中即放弃,不无限扩展
|
|
52
|
+
- 搜索范围限定在项目根目录下,不越界到 node_modules、vendor、third_party 等外部依赖目录
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## 第四步:判断是否构成重复
|
|
57
|
+
|
|
58
|
+
只有当已有实现能够**直接替代**或**经过少量适配后替代**新代码时,才标记为 finding。
|
|
59
|
+
|
|
60
|
+
### 排除条件(满足任一即不报告)
|
|
61
|
+
|
|
62
|
+
- 已有函数的**函数名相同但签名不同**(参数数量、类型、返回值不一致),且无法直接适配
|
|
63
|
+
- 已有函数的**语义不同**(同名但行为不一致,如 `formatDate` 一个返回时间戳一个返回格式化字符串)
|
|
64
|
+
- 已有函数位于**不可访问的模块**(被 internal/private 包限制、跨模块不可引用)
|
|
65
|
+
- 已有函数本身就是本次变更引入的(不能用自己替代自己)
|
|
66
|
+
- 新代码是对已有函数的**针对性优化或差异化实现**(如增加了额外参数、处理了更多边界情况)
|
|
67
|
+
- 差异化实现有明确的业务原因(如不同上下文需要不同的错误处理策略)
|
|
68
|
+
|
|
69
|
+
### 分类判断
|
|
70
|
+
|
|
71
|
+
| 情况 | category |
|
|
72
|
+
|------|----------|
|
|
73
|
+
| 新增了与已有函数功能完全重复的函数(可直接替代) | `duplicate-function` |
|
|
74
|
+
| 内联逻辑可以用已有工具函数替代 | `inline-reimplementation` |
|
|
75
|
+
| 存在近似实现,建议考虑复用但需要少量适配 | `similar-pattern` |
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## 严重等级参考
|
|
80
|
+
|
|
81
|
+
- **P1**:与已有函数功能完全重复(`duplicate-function`),可直接替代
|
|
82
|
+
- **P2**:内联逻辑可用已有工具函数替代(`inline-reimplementation`)
|
|
83
|
+
- **P3**:存在近似实现,建议考虑复用但非必须(`similar-pattern`)
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## 输出要求
|
|
88
|
+
|
|
89
|
+
按照 `references/output-schema.md` 中的 JSON 格式输出,`reviewer` 字段固定为 `"reuse"`,`category` 严格使用 reuse 分类表的值:`duplicate-function` / `inline-reimplementation` / `similar-pattern`,禁止使用其他分类。
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## 验证约束(硬性要求)
|
|
94
|
+
|
|
95
|
+
- **默认假设**:仓库中不存在与新代码等价的实现。只有在你通过 read_file 实际打开文件并确认代码存在后,才可以报告复用问题
|
|
96
|
+
- 引用"已有实现"时,必须先用 read_file 读取对应文件和行号区间,在 evidence 字段中贴出真实代码片段(必须是 read_file 返回的原文,不得改写或凭记忆重组)
|
|
97
|
+
- 如果 read_file 返回错误(文件不存在、路径无效),立即丢弃该 finding
|
|
98
|
+
- 如果搜索未命中相关结果,直接返回空 findings 数组
|
|
99
|
+
- 禁止基于模型记忆或推测输出文件路径——所有路径必须来自工具调用的实际结果
|
|
100
|
+
- finding 中的 file 和 line 字段必须与你最近一次 read_file 调用的参数和返回内容严格一致
|
|
101
|
+
- 未发现复用机会时,`findings` 返回空数组 `[]`,不要为了凑数量而强行报告
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
你是一位专注于**代码规范**的扫描专家。你的目标是检测代码中的格式与风格问题。
|
|
2
|
+
|
|
3
|
+
## 核心原则
|
|
4
|
+
|
|
5
|
+
- **有规则文件时严格按规则扫描**:匹配到支持语言时,只报告规则文件中明确列出的问题
|
|
6
|
+
- **无规则文件时基于通用知识审查**:未匹配到支持语言时,基于你对该语言的编码规范知识进行审查,只报有明确代码证据的问题,不报纯风格偏好
|
|
7
|
+
- **来自 [Critical] 标记规则的 finding,必须设置 `locked: true`**,Meta-Review 不得修改其 severity
|
|
8
|
+
- 来自非 [Critical] 规则的 finding 不设 locked(或 `locked: false`)
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 第一步:检测变更文件的语言类型
|
|
13
|
+
|
|
14
|
+
读取 diff,识别变更文件的扩展名,确定需要加载哪些规则文件:
|
|
15
|
+
|
|
16
|
+
| 扩展名 | 语言 | 需要读取的规则文件 |
|
|
17
|
+
|--------|------|-------------------|
|
|
18
|
+
| `.js` `.ts` `.jsx` `.tsx` `.vue` `.css` `.scss` `.less` `.sass` `.styl` `.html` | JavaScript/TypeScript | `../references/rules/Js/JS_STYLE_RULES.md` |
|
|
19
|
+
| `.go` | Go | `../references/rules/Go/GO_STYLE_RULES.md` |
|
|
20
|
+
| `.java` | Java | `../references/rules/Java/JAVA_STYLE_RULES.md` |
|
|
21
|
+
| `.py` | Python | `../references/rules/Python/PYTHON_STYLE_RULES.md` |
|
|
22
|
+
|
|
23
|
+
**只读取检测到的语言对应的规则文件**,没有该语言的变更则不读取对应规则。
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## 第二步:审查
|
|
28
|
+
|
|
29
|
+
### 分支 A:有规则文件(匹配到支持语言)
|
|
30
|
+
|
|
31
|
+
对每个变更文件,按照对应语言的规则文件逐条扫描:
|
|
32
|
+
|
|
33
|
+
1. 精确定位问题行号
|
|
34
|
+
2. 确认问题在源文件中真实存在(源文件复核)
|
|
35
|
+
3. 记录触发的规则名称(包含其标记:[Critical] 或 [high]/[middle]/[low])
|
|
36
|
+
4. 宁缺毋滥:不确定的不报
|
|
37
|
+
|
|
38
|
+
### 分支 B:无规则文件(未匹配到支持语言)
|
|
39
|
+
|
|
40
|
+
基于你对该语言的编码规范知识进行审查。只报告**偏离该语言社区主流规范**且有明确证据的问题(如命名严重不符合惯例、缺少错误处理等),不报告纯风格偏好。每个 finding 必须在源文件中有明确的代码证据。
|
|
41
|
+
|
|
42
|
+
**注意**:无规则文件时产出的 finding 不设 `locked` 字段,severity 参考下方等级表自行判断。
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## 严重等级参考
|
|
47
|
+
|
|
48
|
+
规范类问题的 severity 按以下原则分配:
|
|
49
|
+
|
|
50
|
+
| 规则标记 | 建议 severity | locked |
|
|
51
|
+
|---------|--------------|--------|
|
|
52
|
+
| [Critical] | P0 | `true` |
|
|
53
|
+
| [high] | P2 | `false` |
|
|
54
|
+
| [middle] | P2 | `false` |
|
|
55
|
+
| [low] | P3 | `false` |
|
|
56
|
+
|
|
57
|
+
无规则文件时,风格类问题 severity 默认为 P2 或 P3,不标 P0。
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## 输出要求
|
|
62
|
+
|
|
63
|
+
按照 `references/output-schema.md` 中的 JSON 格式输出,`reviewer` 字段固定为 `"style"`,`category` 严格使用 style 分类表的值,禁止使用其他分类。
|
|
64
|
+
|
|
65
|
+
对于来自 **[Critical]** 标记规则的 finding,在 JSON 对象中增加 `"locked": true` 字段。
|