@comate/zulu 1.4.0-beta.2 → 1.4.0-beta.3
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-rule-comate → create-rule}/SKILL.md +1 -0
- package/comate-engine/assets/skills/{create-skill-comate → create-skill}/SKILL.md +1 -1
- package/comate-engine/assets/skills/{figma2code-comate → figma2code}/SKILL.md +1 -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/node_modules/@comate/plugin-shared-internals/dist/index.js +3 -3
- package/comate-engine/server.js +136 -82
- package/dist/bundle/index.js +20 -9
- package/package.json +1 -1
- /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-image-comate → create-image}/SKILL.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/{get-ugate-token-comate → get-ugate-token}/SKILL.md +0 -0
- /package/comate-engine/assets/skills/{get-ugate-token-comate → get-ugate-token}/getUgateToken.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,300 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: create-automation-tasks
|
|
3
|
+
description: |
|
|
4
|
+
帮助用户创建、配置和管理 Comate Automation 自动化任务。当用户表达以下意图时触发:
|
|
5
|
+
- 创建/设置/新建自动化任务、定时任务、cron 任务
|
|
6
|
+
- 修改/删除/查看已有的 Automation 配置
|
|
7
|
+
- "每天/每周/每月自动帮我做..."
|
|
8
|
+
- 配置 webhook 触发任务
|
|
9
|
+
不适用于普通的一次性任务请求,仅适用于需要周期性或事件驱动执行的自动化配置。
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# create_automation_tasks Skill
|
|
13
|
+
|
|
14
|
+
你正在帮助用户创建或管理 Comate Automation 自动化任务。本 Skill 的核心目标是**根据用户的具体需求,量身定制 AUTOMATION.md 的 query**,而不是套用固定流程模板。
|
|
15
|
+
|
|
16
|
+
## 注入参数(运行时由 Comate 填充)
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
activeAutomations = [] # 已有任务列表,格式见下方
|
|
20
|
+
availableModelIds = [ernie-x1-0401, ernie-4.5-8k]
|
|
21
|
+
webhookBaseUrl = null # Phase 2 启用后注入,如 http://127.0.0.1:52384/webhook
|
|
22
|
+
currentWorkspace = "" # 当前 IDE 打开的项目路径
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
`activeAutomations` 每项结构:`{name, enabled, triggerType, cron?, workspace, lastStatus, nextRunAt}`
|
|
26
|
+
|
|
27
|
+
配置目录固定为 `~/.comate/automations`,每个任务对应目录下的一个 `AUTOMATION.md` 文件。
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## AUTOMATION.md 格式
|
|
32
|
+
|
|
33
|
+
每个任务存放在 `~/.comate/automations/{taskName}/AUTOMATION.md`。
|
|
34
|
+
|
|
35
|
+
采用 **YAML frontmatter + Markdown body** 格式:frontmatter 为调度/执行配置,body 为发给 Agent 的 query 指令。
|
|
36
|
+
|
|
37
|
+
### 基本格式(定时触发)
|
|
38
|
+
|
|
39
|
+
````markdown
|
|
40
|
+
---
|
|
41
|
+
name: "task-name" # kebab-case,与目录名一致
|
|
42
|
+
description: "任务描述" # 可选,非空字符串
|
|
43
|
+
enabled: true
|
|
44
|
+
|
|
45
|
+
triggers:
|
|
46
|
+
- type: schedule
|
|
47
|
+
schedule:
|
|
48
|
+
cron: "0 9 * * 1-5" # 5字段:分 时 日 月 周
|
|
49
|
+
timezone: "Asia/Shanghai" # 可选,IANA 时区,默认系统时区
|
|
50
|
+
|
|
51
|
+
execution:
|
|
52
|
+
workspace: "/absolute/path/to/project" # 绝对路径,默认使用当前项目路径
|
|
53
|
+
timeoutSeconds: 3600 # 可选,正整数,默认 3600,上限 7200
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
这里写任务指令(query)。必须自包含,包含所有必要上下文。
|
|
57
|
+
|
|
58
|
+
完成后请将执行摘要写入 promise_done_summary.md。
|
|
59
|
+
````
|
|
60
|
+
|
|
61
|
+
同一任务可配置多个 trigger(schedule 至多一个):
|
|
62
|
+
|
|
63
|
+
```yaml
|
|
64
|
+
triggers:
|
|
65
|
+
- type: schedule
|
|
66
|
+
schedule:
|
|
67
|
+
cron: "0 9 * * 1-5"
|
|
68
|
+
- type: webhook
|
|
69
|
+
webhook:
|
|
70
|
+
endpointId: "a3f9c2b1"
|
|
71
|
+
method: POST
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Webhook 触发(Phase 2,`webhookBaseUrl` 不为 null 时可配置)
|
|
75
|
+
|
|
76
|
+
```yaml
|
|
77
|
+
triggers:
|
|
78
|
+
- type: webhook
|
|
79
|
+
webhook:
|
|
80
|
+
endpointId: "a3f9c2b1" # 8位hex,见下方生成方法
|
|
81
|
+
method: POST # 可选,GET | POST,默认 POST
|
|
82
|
+
filter: # 可选,二级过滤条件
|
|
83
|
+
bodyContains: "deploy succeeded" # 可选,非空字符串
|
|
84
|
+
requiredHeaders: # 可选,字符串列表
|
|
85
|
+
- "X-My-Token"
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
> **生成 endpointId**(写入 AUTOMATION.md 前在终端执行一次,取输出填入):
|
|
89
|
+
> ```bash
|
|
90
|
+
> node -e "console.log(require('crypto').randomBytes(4).toString('hex'))"
|
|
91
|
+
> # 或: python3 -c "import uuid; print(uuid.uuid4().hex[:8])"
|
|
92
|
+
> ```
|
|
93
|
+
> webhook URL = `{webhookBaseUrl}/{endpointId}`,在 Dashboard 中展示给用户复制到外部系统。
|
|
94
|
+
|
|
95
|
+
### GitHub / Slack 事件触发(Phase 3,暂不实现)
|
|
96
|
+
|
|
97
|
+
```yaml
|
|
98
|
+
triggers:
|
|
99
|
+
- type: github
|
|
100
|
+
github:
|
|
101
|
+
event: pull_request_opened # push | pull_request_opened | ci_completed
|
|
102
|
+
repository: "org/repo"
|
|
103
|
+
branch: main
|
|
104
|
+
- type: slack
|
|
105
|
+
slack:
|
|
106
|
+
event: app_mention # app_mention | message
|
|
107
|
+
channelId: "C12345678"
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## 执行 Agent 的能力与约束
|
|
113
|
+
|
|
114
|
+
AUTOMATION.md 的 body(query)会被一个独立的 Comate Agent Session 执行。设计 query 时需了解该 Agent 的运行环境:
|
|
115
|
+
|
|
116
|
+
**Agent 具备的能力**:
|
|
117
|
+
- 与当前用户的 Comate 环境**完全一致**:拥有相同的 **Skills**、**Rules**、**Tools**
|
|
118
|
+
- 这意味着:用户在当前项目中配置的所有 Rules(如 `.comate/rules/` 下的规则)和 Skills 在 Automation Session 中同样生效
|
|
119
|
+
- 可以读写文件、执行终端命令、搜索代码、调用网络等
|
|
120
|
+
- 运行在 **YOLO 模式**(权限全开):所有工具调用和命令执行均自动批准,不弹确认
|
|
121
|
+
|
|
122
|
+
**Agent 已知的上下文**:
|
|
123
|
+
- 通过 Unattended Prompt 注入,Agent 知道自己是**无人值守自动化 Session**,不会等待用户确认
|
|
124
|
+
- Agent 知道触发类型、时间、workspace、Git 状态等元信息
|
|
125
|
+
- Agent 知道完成任务后必须写入 `promise_done_summary.md` 文件作为成功信号
|
|
126
|
+
|
|
127
|
+
**Agent 不具备的能力**:
|
|
128
|
+
- 没有本次对话的历史上下文(每次 run 是全新 Session)
|
|
129
|
+
- 不会主动提问或等待用户输入(提问会导致 stall 直至超时)
|
|
130
|
+
- 没有跨 run 的记忆(每次执行互相独立)
|
|
131
|
+
因此,query 必须是**自包含的完整指令**:所有必要信息(路径、分支、环境、步骤、边界条件)都要写在 query 里,不能依赖"Agent 应该知道"的隐含假设。但可以通过引用 Skill 和 Rule 来复用已有配置(见下方引用语法),无需在 query 中重复这些内容。
|
|
132
|
+
|
|
133
|
+
### 在 query 中引用 Skills 和 Rules
|
|
134
|
+
|
|
135
|
+
执行 Agent 加载的 Skills/Rules 与当前用户环境一致。**如果 workspace 路径不变**,query 中直接写 Skill 名称或 Rule 文件名即可,Agent 会自动识别:
|
|
136
|
+
- `使用 code-security skill 扫描项目安全漏洞`
|
|
137
|
+
- `遵循 code-style.mdr 中的代码规范`
|
|
138
|
+
|
|
139
|
+
**如果 workspace 指向了不同项目**,需要用绝对路径引用,因为执行 Agent 加载的是目标项目的配置:
|
|
140
|
+
- Skill 路径在 `{currentWorkspace}/.comate/skills/` 或 `~/.comate/skills/` 下查找
|
|
141
|
+
- Rule 路径在 `{currentWorkspace}/.comate/rules/` 下查找
|
|
142
|
+
|
|
143
|
+
Agent 已自动加载 `.comate/rules/` 下的所有规则,大多数情况下无需显式引用。但如果需要强调某条规则,提及文件名即可。
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## 策略模板库
|
|
148
|
+
|
|
149
|
+
本 Skill 附带一组**策略模板**,存放在 `{skill_dir}/references/` 目录下。这些模板不是固定流程——而是按需引用的设计参考,用于为中等和复杂任务定制更高质量的 query。
|
|
150
|
+
|
|
151
|
+
### 模板分类与使用规则
|
|
152
|
+
|
|
153
|
+
**第一类:横切策略(按需叠加,任何类型任务都可能用到)**
|
|
154
|
+
|
|
155
|
+
| 模板文件 | 覆盖内容 | 何时读取 |
|
|
156
|
+
|---------|---------|---------|
|
|
157
|
+
| `references/env_setup.md` | 运行时激活、环境变量、依赖安装、非交互式约束 | 任务依赖特定运行时或环境变量时 |
|
|
158
|
+
| `references/git_operations.md` | 拉代码、分支管理、提交、push | 任务涉及 Git 操作时 |
|
|
159
|
+
| `references/long_running_task.md` | 超时管理、分步执行、幂等性、错误处理、自主排障 | 任务步骤多或预期耗时长时 |
|
|
160
|
+
|
|
161
|
+
**第二类:领域参考(通常只需读一个,选与项目类型匹配的)**
|
|
162
|
+
|
|
163
|
+
| 模板文件 | 覆盖内容 | 何时读取 |
|
|
164
|
+
|---------|---------|---------|
|
|
165
|
+
| `references/testing_strategy.md` | 成功标准定义、测试类型选择、失败处理、证据收集 | 任务核心目标是验证代码正确性时(不是"跑 npm test"这种单命令,而是"修改代码后需要验证") |
|
|
166
|
+
| `references/frontend_dev.md` | 前端构建验证、lint/类型检查、无 GUI 限制 | 任务涉及前端代码修改或前端质量检查时 |
|
|
167
|
+
| `references/backend_dev.md` | 服务依赖、数据库迁移、API 测试、进程管理 | 任务涉及后端代码修改或后端运维时 |
|
|
168
|
+
|
|
169
|
+
**使用规则**:
|
|
170
|
+
- 第一类模板可叠加(一个任务可同时参考 env_setup + git_operations)
|
|
171
|
+
- 第二类模板通常只需读一个(项目是前端就读 frontend_dev,是后端就读 backend_dev)
|
|
172
|
+
- **简单任务(单条命令即可完成):不读任何模板**
|
|
173
|
+
|
|
174
|
+
### 使用方式
|
|
175
|
+
|
|
176
|
+
1. **分析用户 query**:理解任务本质——是简单的脚本执行?代码修改?还是多步骤的端到端流程?
|
|
177
|
+
2. **按需读取相关模板**:只读取与用户任务相关的模板
|
|
178
|
+
3. **提取策略融入 query 或直接引用**:
|
|
179
|
+
- 如果模板中的策略需要针对用户项目做具体适配(如替换具体命令、路径),则从模板中提取要点写进 query
|
|
180
|
+
- 如果模板整体适用且无需适配,可以在 query 中引用模板的**绝对路径**让执行 Agent 自行读取,例如:`关于 Git 操作细节,参考 /Users/xxx/.comate/skills/create-automation-tasks/references/git_operations.md`(注意:必须使用绝对路径,不能用 `{skill_dir}` 变量,因为执行 Agent 无法解析该变量)
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## 你的职责
|
|
185
|
+
|
|
186
|
+
### 创建任务
|
|
187
|
+
|
|
188
|
+
**1. 收集必填信息**
|
|
189
|
+
|
|
190
|
+
必问(用户未提及时主动询问):
|
|
191
|
+
- **做什么**:任务目标 → AUTOMATION.md body 核心内容
|
|
192
|
+
- **项目路径**:默认使用 `{currentWorkspace}`(当前 IDE 打开的项目路径)。如果用户指定了不同的项目路径,主动提醒用户:执行 Agent 会加载**目标项目**的 Comate 配置(Skills/Rules),而非当前项目的。如果用户的 query 需要引用当前项目中的 Skill 或 Rule,应在 `{currentWorkspace}/.comate/skills/` 或 `~/.comate/skills/` 下查找其绝对路径,并在 query 中使用绝对路径引用
|
|
193
|
+
- **触发方式**:定时(询问频率/时间点)或 webhook
|
|
194
|
+
|
|
195
|
+
按需询问(根据任务复杂度决定要不要问,简单任务少问,复杂任务细问):
|
|
196
|
+
- Git 操作:拉代码?提交/push 到哪个分支?
|
|
197
|
+
- 测试:改完是否跑测试?用什么命令?
|
|
198
|
+
- **执行环境**(关键,环境不对则任务必然失败):
|
|
199
|
+
- 项目依赖什么运行时?Python venv / conda 环境名?Node nvm 版本?Java/Go 版本?
|
|
200
|
+
- 需要 source 哪个文件?(如 `source ~/.bashrc`、`conda activate myenv`、`nvm use 18`)
|
|
201
|
+
- 是否依赖环境变量?(如 API Key、数据库连接串)→ 引导用户给出 `.env` 文件路径或具体值
|
|
202
|
+
- 是否依赖配置文件?(如 `.npmrc`、`settings.xml`、`kubeconfig`)→ 引导用户给出绝对路径
|
|
203
|
+
- 如果用户不确定,建议先手动在终端跑一次任务核心命令,确认环境可用后再配置自动化
|
|
204
|
+
- 超时时长
|
|
205
|
+
|
|
206
|
+
**2. 设计 query(AUTOMATION.md body)**
|
|
207
|
+
|
|
208
|
+
将用户意图转化为可被无人值守 Agent 端到端执行的自包含指令(参见上方"执行 Agent 的能力与约束")。
|
|
209
|
+
|
|
210
|
+
**query 设计的第一原则:最小充分**
|
|
211
|
+
|
|
212
|
+
在设计 query 之前,先判断任务复杂度,选择对应策略:
|
|
213
|
+
|
|
214
|
+
- **一条命令能完成**(跑测试、lint、生成报告)→ 直接写命令 + 摘要要求,**不读取任何模板,不添加任何额外策略**。示例 query:`运行 npm test,将结果摘要写入 promise_done_summary.md。`
|
|
215
|
+
- **2-3 个步骤,逻辑清晰**(依赖更新 + 测试验证)→ 按需读取 1-2 个模板,提取适用要点
|
|
216
|
+
- **多步骤端到端流程**(拉代码 → 修改 → 测试 → push)→ 读取多个模板组合设计,参考 `long_running_task.md` 设计分步方案
|
|
217
|
+
|
|
218
|
+
设计要点:
|
|
219
|
+
- **环境配置写在 query 最前面**(如果需要的话):Agent 在全新 Session 中启动,不会继承用户终端的环境。参考 `references/env_setup.md` 中的策略
|
|
220
|
+
- **利用 Skills/Rules 引用减少 query 冗余**:不需要在 query 中重复写 Rules 中已有的规范,Agent 会自动加载。但可以提示 Agent 注意某个 Rule 或使用某个 Skill(见上方"引用 Skills 和 Rules"语法)
|
|
221
|
+
- 所有必要信息写进 query(不能依赖对话历史或隐含假设)
|
|
222
|
+
- 结尾加上:`完成后请将执行摘要写入 promise_done_summary.md。`
|
|
223
|
+
|
|
224
|
+
**3. 展示 AUTOMATION.md 并确认**
|
|
225
|
+
|
|
226
|
+
展示完整的 AUTOMATION.md 内容(frontmatter + body)及写入路径,等用户确认。
|
|
227
|
+
|
|
228
|
+
**4. 写入文件并校验**
|
|
229
|
+
|
|
230
|
+
```bash
|
|
231
|
+
mkdir -p ~/.comate/automations/{taskName}
|
|
232
|
+
# 写入 AUTOMATION.md
|
|
233
|
+
python3 {skill_dir}/scripts/check_config.py ~/.comate/automations/{taskName}/AUTOMATION.md
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
校验脚本验证 frontmatter 的 YAML 格式、必填字段、cron 语法等。校验通过后告知用户。若报错,根据提示修正后重新校验。
|
|
237
|
+
|
|
238
|
+
**5. 引导试跑**
|
|
239
|
+
|
|
240
|
+
> "配置已就绪。建议先去 Automations Dashboard 找到该任务,点击**立即运行(Run Now)**跑一次,在 Session History 中查看结果是否符合预期。"
|
|
241
|
+
|
|
242
|
+
### 管理已有任务
|
|
243
|
+
|
|
244
|
+
- **查看**:读取 AUTOMATION.md 展示
|
|
245
|
+
- **修改**:直接编辑 AUTOMATION.md,提醒 Scheduler 会自动 reload
|
|
246
|
+
- **删除**:二次确认后删除 `~/.comate/automations/{taskName}/` 整个目录
|
|
247
|
+
- **查看历史**:告知用户在 IDE Automations Dashboard → Session History 中查看
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## 注意事项
|
|
252
|
+
|
|
253
|
+
- Automation 仅在 Comate 运行时触发,关闭 IDE 则不执行任何 cron
|
|
254
|
+
- `triggerAt` 建议设为创建后的下一个预期执行时间点,避免立即触发补跑
|
|
255
|
+
- 创建前检查是否已有同名任务(查看 ~/.comate/automations/ 下的目录)
|
|
256
|
+
- webhook 的 `endpointId` 必须通过命令行生成,不可由模型凭空编造
|
|
257
|
+
- timeoutSeconds 默认 3600,上限 7200
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
## Cron 表达式速查
|
|
262
|
+
|
|
263
|
+
### 理解语法
|
|
264
|
+
|
|
265
|
+
cron 的每个字段描述"这个时间维度上哪些值会触发",五个字段同时满足才触发:
|
|
266
|
+
|
|
267
|
+
```
|
|
268
|
+
分(0-59) 时(0-23) 日(1-31) 月(1-12) 周(0-7, 0和7均为周日)
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
| 语法 | 含义 | 集合视角 |
|
|
272
|
+
|------|------|---------|
|
|
273
|
+
| `*` | 该字段所有值 | 全集 |
|
|
274
|
+
| `1-5` | 1 到 5 | 区间子集 |
|
|
275
|
+
| `*/5` | 每隔 5 取一个(0,5,10,...)| 步长子集(x mod 5 = 0)|
|
|
276
|
+
| `2-10/3` | 区间内步长,{2,5,8} | 区间内步长子集 |
|
|
277
|
+
| `1,3,5` | 仅 1、3、5 | 显式枚举集合 |
|
|
278
|
+
|
|
279
|
+
### 常用表达式对照
|
|
280
|
+
|
|
281
|
+
| 用户说法 | cron 表达式 | 向用户展示时说 |
|
|
282
|
+
|---------|------------|--------------|
|
|
283
|
+
| 每天早上9点 | `0 9 * * *` | 每天 09:00 |
|
|
284
|
+
| 工作日早上9点 | `0 9 * * 1-5` | 周一至周五 09:00 |
|
|
285
|
+
| 每周一早上10点 | `0 10 * * 1` | 每周一 10:00 |
|
|
286
|
+
| 每4小时 | `0 */4 * * *` | 每4小时(00:00/04:00/08:00...)|
|
|
287
|
+
| 每30分钟 | `*/30 * * * *` | 每30分钟整点和半点 |
|
|
288
|
+
| 每天午夜 | `0 0 * * *` | 每天 00:00 |
|
|
289
|
+
| 每月1号9点 | `0 9 1 * *` | 每月1日 09:00 |
|
|
290
|
+
| 每周一、三、五下午5点 | `0 17 * * 1,3,5` | 周一、三、五 17:00 |
|
|
291
|
+
|
|
292
|
+
### 向用户展示配置时
|
|
293
|
+
|
|
294
|
+
展示 cron 表达式时,**始终附带人类可读描述**,例如:
|
|
295
|
+
|
|
296
|
+
> `cron: "0 9 * * 1-5"` → 执行时间:**周一至周五 09:00**
|
|
297
|
+
|
|
298
|
+
用户说"大概几点"时,避免整点 :00 和 :30——大量用户的相同时间会并发触发:
|
|
299
|
+
- "大概早上9点" → 用 `57 8 * * *` 或 `3 9 * * *`,不用 `0 9 * * *`
|
|
300
|
+
- "每小时" → 用 `7 * * * *`,不用 `0 * * * *`
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# 后端开发任务策略模板
|
|
2
|
+
|
|
3
|
+
当 Automation 任务涉及后端代码修改或后端质量检查时,将以下策略融入 query 设计。
|
|
4
|
+
|
|
5
|
+
## 适用场景
|
|
6
|
+
|
|
7
|
+
- 修改后端业务逻辑、API 端点、数据库模型等
|
|
8
|
+
- 后端依赖更新或安全修复
|
|
9
|
+
- 运行后端测试套件
|
|
10
|
+
- API 健康检查、数据库迁移等运维任务
|
|
11
|
+
|
|
12
|
+
## 策略要点
|
|
13
|
+
|
|
14
|
+
### 服务依赖
|
|
15
|
+
|
|
16
|
+
后端任务常依赖外部服务(数据库、缓存、消息队列等)。**默认先尝试启动服务**,不要看到"需要 Postgres/Redis/MongoDB"就放弃——大多数项目的 dev 命令或 docker-compose 已处理了依赖启动或 mock。只有在遇到**具体的运行时错误**表明确实缺少某个依赖时,才将其视为阻塞并记录在摘要中。
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
# 如果依赖 Docker Compose 管理的服务
|
|
20
|
+
docker compose up -d postgres redis
|
|
21
|
+
# 等待服务就绪
|
|
22
|
+
sleep 5
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### 测试策略
|
|
26
|
+
|
|
27
|
+
后端测试通常分层:
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
运行测试:
|
|
31
|
+
1. 单元测试:{unit_test_command}
|
|
32
|
+
2. 集成测试:{integration_test_command} # 可选,取决于是否有服务依赖
|
|
33
|
+
3. API 测试:curl -s http://localhost:{port}/health # 如果需要验证服务可用性
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
- 如果任务只改了业务逻辑,单元测试通常足够
|
|
37
|
+
- 如果改了 API 接口或数据库模型,需要集成测试
|
|
38
|
+
|
|
39
|
+
### 数据库迁移
|
|
40
|
+
|
|
41
|
+
如果任务涉及数据库 schema 变更:
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
执行数据库迁移:
|
|
45
|
+
{migrate_command} # 如 python manage.py migrate, npx prisma migrate dev
|
|
46
|
+
|
|
47
|
+
迁移后验证:
|
|
48
|
+
{test_command}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
- 迁移命令必须写在 query 中,Agent 不会自动猜测
|
|
52
|
+
- 如果迁移失败,Agent 应记录错误而非自行回滚
|
|
53
|
+
|
|
54
|
+
### 长时间运行任务
|
|
55
|
+
|
|
56
|
+
后端任务(如全量测试、数据处理)可能耗时较长:
|
|
57
|
+
|
|
58
|
+
- 在 frontmatter 中设置合理的 `timeoutSeconds`(默认 3600,上限 7200)
|
|
59
|
+
- 在 query 中提示 Agent 注意超时:
|
|
60
|
+
```
|
|
61
|
+
注意:本任务可能耗时较长。如果某个步骤超过 30 分钟未完成,跳过该步骤并记录原因。
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### 进程管理
|
|
65
|
+
|
|
66
|
+
**Automation Agent 如果为了测试而启动了后端服务,任务结束前必须停止服务。** 不停服务会导致端口被占用,影响下次 run 或用户的正常开发。
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
注意:
|
|
70
|
+
- 不要使用 pkill -f 按名称杀进程,必须使用具体 PID
|
|
71
|
+
- 启动服务时记录 PID,测试完成后用 kill {PID} 停止
|
|
72
|
+
- 使用 kill {PID} 而不是 kill -9,给进程优雅退出的机会
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## query 片段示例
|
|
76
|
+
|
|
77
|
+
**场景:后端依赖安全修复(Python)**
|
|
78
|
+
```
|
|
79
|
+
检查 Python 依赖的安全漏洞:
|
|
80
|
+
pip audit
|
|
81
|
+
|
|
82
|
+
如果发现漏洞:
|
|
83
|
+
1. 更新有漏洞的包到安全版本
|
|
84
|
+
2. 运行测试:pytest
|
|
85
|
+
3. 如果测试通过,更新 requirements.txt
|
|
86
|
+
4. 提交修改
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**场景:定期运行后端测试套件**
|
|
90
|
+
```
|
|
91
|
+
运行后端完整测试套件:
|
|
92
|
+
pytest --tb=short -q
|
|
93
|
+
|
|
94
|
+
在摘要中报告:
|
|
95
|
+
- 通过/失败/跳过的测试数量
|
|
96
|
+
- 失败测试的名称和错误摘要
|
|
97
|
+
- 总耗时
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
**场景:API 健康检查 + 数据库连接验证**
|
|
101
|
+
```
|
|
102
|
+
验证后端服务健康状态:
|
|
103
|
+
1. 启动服务:{start_command}(记录 PID)
|
|
104
|
+
2. 等待服务就绪(最多 30 秒)
|
|
105
|
+
3. 检查健康端点:curl -sf http://localhost:{port}/health
|
|
106
|
+
4. 检查数据库连接:{db_check_command}
|
|
107
|
+
5. 用 kill {PID} 停止服务
|
|
108
|
+
6. 报告各项检查结果
|
|
109
|
+
```
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# 环境配置策略模板
|
|
2
|
+
|
|
3
|
+
Automation Agent 在全新 Session 中启动,不会继承用户终端的环境。如果任务依赖特定运行时、环境变量或配置,必须在 query 中显式声明。
|
|
4
|
+
|
|
5
|
+
## 适用场景
|
|
6
|
+
|
|
7
|
+
- 项目使用 Python venv / conda / poetry
|
|
8
|
+
- 项目使用 Node.js nvm / fnm / volta
|
|
9
|
+
- 项目依赖环境变量(API Key、数据库连接串等)
|
|
10
|
+
- 项目需要特定系统依赖或配置文件
|
|
11
|
+
|
|
12
|
+
## 关键约束
|
|
13
|
+
|
|
14
|
+
**所有命令必须是非交互式的。** Automation Agent 在无人值守环境中运行,交互式命令(需要用户输入 y/n、选择菜单等)会导致 Agent stall 直至超时。始终使用非交互 flag:
|
|
15
|
+
- `apt-get install -y`(不是 `apt-get install`)
|
|
16
|
+
- `pip install --yes`
|
|
17
|
+
- `npm install`(本身非交互)
|
|
18
|
+
- `pnpm approve-builds` → 不要使用(交互式),改用 `pnpm.onlyBuiltDependencies` 配置
|
|
19
|
+
|
|
20
|
+
## 策略要点
|
|
21
|
+
|
|
22
|
+
### 运行时激活
|
|
23
|
+
|
|
24
|
+
不同技术栈的环境激活方式:
|
|
25
|
+
|
|
26
|
+
**Python:**
|
|
27
|
+
```
|
|
28
|
+
# conda
|
|
29
|
+
source /path/to/miniconda3/bin/activate {env_name}
|
|
30
|
+
|
|
31
|
+
# venv
|
|
32
|
+
source /path/to/project/.venv/bin/activate
|
|
33
|
+
|
|
34
|
+
# poetry(注意:不要用 poetry shell,它会创建子 shell,在非交互终端行为不可预测)
|
|
35
|
+
source $(poetry env info --path)/bin/activate
|
|
36
|
+
# 或者直接用 poetry run 前缀执行命令:
|
|
37
|
+
poetry run pytest
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**Node.js:**
|
|
41
|
+
```
|
|
42
|
+
# nvm
|
|
43
|
+
export NVM_DIR="$HOME/.nvm" && source "$NVM_DIR/nvm.sh" && nvm use {version}
|
|
44
|
+
|
|
45
|
+
# fnm
|
|
46
|
+
eval "$(fnm env)" && fnm use {version}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**Java / Go / Rust:**
|
|
50
|
+
```
|
|
51
|
+
# JAVA_HOME
|
|
52
|
+
export JAVA_HOME=/path/to/jdk && export PATH=$JAVA_HOME/bin:$PATH
|
|
53
|
+
|
|
54
|
+
# Go
|
|
55
|
+
export GOROOT=/path/to/go && export PATH=$GOROOT/bin:$PATH
|
|
56
|
+
|
|
57
|
+
# Rust
|
|
58
|
+
source $HOME/.cargo/env
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### 包管理器匹配锁文件
|
|
62
|
+
|
|
63
|
+
在 query 中使用与项目锁文件匹配的包管理器,不要混用:
|
|
64
|
+
|
|
65
|
+
| 锁文件 | 包管理器 |
|
|
66
|
+
|-------|---------|
|
|
67
|
+
| `package-lock.json` | npm |
|
|
68
|
+
| `yarn.lock` | yarn |
|
|
69
|
+
| `pnpm-lock.yaml` | pnpm |
|
|
70
|
+
| `bun.lockb` | bun |
|
|
71
|
+
| `poetry.lock` | poetry |
|
|
72
|
+
| `Pipfile.lock` | pipenv |
|
|
73
|
+
| `uv.lock` | uv |
|
|
74
|
+
|
|
75
|
+
如果不确定,查看项目根目录下存在哪个锁文件。安装依赖前建议先删除 `node_modules`(Node.js 项目)以确保干净状态。
|
|
76
|
+
|
|
77
|
+
### 环境变量
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
# 从文件加载
|
|
81
|
+
source /path/to/project/.env
|
|
82
|
+
|
|
83
|
+
# 或逐个设置
|
|
84
|
+
export API_KEY="..."
|
|
85
|
+
export DATABASE_URL="..."
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
- 引导用户将敏感信息存入 `.env` 文件,query 中只写 `source .env`
|
|
89
|
+
- 不要在 AUTOMATION.md 中硬编码密钥
|
|
90
|
+
|
|
91
|
+
### 依赖安装
|
|
92
|
+
|
|
93
|
+
如果任务需要确保依赖是最新的:
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
# 进入项目后先安装/更新依赖
|
|
97
|
+
npm install # Node.js
|
|
98
|
+
pip install -r requirements.txt # Python
|
|
99
|
+
go mod download # Go
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### 常见陷阱
|
|
103
|
+
|
|
104
|
+
1. **PATH 不完整**:全新 Session 的 PATH 可能不包含用户安装的工具。必要时显式设置
|
|
105
|
+
2. **代理/镜像源**:如果项目依赖特定的 npm/pip 镜像源,需要在 query 中配置
|
|
106
|
+
3. **Docker 环境**:如果任务需要 Docker,确认 Docker daemon 已启动
|
|
107
|
+
|
|
108
|
+
## query 片段示例
|
|
109
|
+
|
|
110
|
+
**场景:Python + conda 项目**
|
|
111
|
+
```
|
|
112
|
+
执行前先配置环境:
|
|
113
|
+
source /Users/xxx/miniconda3/bin/activate myproject
|
|
114
|
+
cd /path/to/project
|
|
115
|
+
pip install -r requirements.txt
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**场景:Node.js 项目 + 环境变量**
|
|
119
|
+
```
|
|
120
|
+
执行前先配置环境:
|
|
121
|
+
export NVM_DIR="$HOME/.nvm" && source "$NVM_DIR/nvm.sh" && nvm use 18
|
|
122
|
+
cd /path/to/project
|
|
123
|
+
npm install
|
|
124
|
+
source .env
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**场景:无特殊环境要求**
|
|
128
|
+
```
|
|
129
|
+
(无需额外环境配置,直接执行任务)
|
|
130
|
+
```
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# 前端开发任务策略模板
|
|
2
|
+
|
|
3
|
+
当 Automation 任务涉及前端代码修改或前端质量检查时,将以下策略融入 query 设计。
|
|
4
|
+
|
|
5
|
+
## 适用场景
|
|
6
|
+
|
|
7
|
+
- 修改 `.tsx`、`.jsx`、`.vue`、`.html`、`.css`、`.scss` 等前端文件
|
|
8
|
+
- 前端依赖更新或安全修复
|
|
9
|
+
- 前端构建、lint、类型检查等质量门禁
|
|
10
|
+
- UI 组件库维护
|
|
11
|
+
|
|
12
|
+
## 策略要点
|
|
13
|
+
|
|
14
|
+
### 构建验证
|
|
15
|
+
|
|
16
|
+
前端修改后,构建是否成功是最基本的验证:
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
修改完成后验证:
|
|
20
|
+
1. 运行 lint:{lint_command} # 如 npm run lint
|
|
21
|
+
2. 运行类型检查:{typecheck_command} # 如 npx tsc --noEmit
|
|
22
|
+
3. 运行构建:{build_command} # 如 npm run build
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
- 构建失败必须修复,不能忽略
|
|
26
|
+
- lint 警告可以记录但不阻塞,lint 错误必须修复
|
|
27
|
+
|
|
28
|
+
### 前端测试
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
运行前端测试:
|
|
32
|
+
{test_command} # 如 npm run test, vitest run, jest
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
- 优先运行与修改相关的测试文件
|
|
36
|
+
- 如果有 snapshot 测试,修改后可能需要更新 snapshot
|
|
37
|
+
|
|
38
|
+
### 无人值守限制
|
|
39
|
+
|
|
40
|
+
Automation Agent 在无人值守模式下运行,没有用户在线监督。因此:
|
|
41
|
+
|
|
42
|
+
- 优先依赖构建成功 + lint 通过 + 自动化测试通过作为验证手段
|
|
43
|
+
- 如果需要更深入的视觉验证且 Agent 具备浏览器能力(如 automation-browser skill),可以在 query 中指示 Agent 使用
|
|
44
|
+
- 对于无法自动化验证的 UI 效果,在摘要中标注"建议人工检查 UI 效果"
|
|
45
|
+
|
|
46
|
+
### 包管理器
|
|
47
|
+
|
|
48
|
+
使用与项目锁文件匹配的包管理器(详见 `env_setup.md` 中的包管理器匹配表)。
|
|
49
|
+
|
|
50
|
+
## query 片段示例
|
|
51
|
+
|
|
52
|
+
**场景:前端依赖安全修复**
|
|
53
|
+
```
|
|
54
|
+
检查前端依赖的安全漏洞:
|
|
55
|
+
npm audit
|
|
56
|
+
|
|
57
|
+
如果发现漏洞:
|
|
58
|
+
1. 运行 npm audit fix 尝试自动修复
|
|
59
|
+
2. 如果 audit fix 无法解决,手动更新有漏洞的包到安全版本
|
|
60
|
+
3. 修复后运行:npm run lint && npx tsc --noEmit && npm run build
|
|
61
|
+
4. 运行测试:npm test
|
|
62
|
+
5. 如果全部通过,提交修改
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**场景:前端质量门禁检查**
|
|
66
|
+
```
|
|
67
|
+
运行前端质量检查:
|
|
68
|
+
1. npm run lint
|
|
69
|
+
2. npx tsc --noEmit
|
|
70
|
+
3. npm test
|
|
71
|
+
4. npm run build
|
|
72
|
+
|
|
73
|
+
在摘要中报告每项检查的结果(通过/失败),以及失败项的具体错误。
|
|
74
|
+
```
|