Agent审查
- 作者仓库星标 434
- 作者更新于 实时读取
- 作者仓库 OneResearchClaw
- 领域
- 通用
- 兼容 Agent
-
- Claude Code
- Cursor
- Cline
- Codex
- Windsurf
- Gemini CLI
- +20
- 信任分
- 88 / 100 · 社区维护
- 作者 / 版本 / 许可
- @gaotiexinqu · 未声明 license
- Token 消耗评级
- 低消耗
- 接入复杂程度
- 需简单配置
- 是否需要外部 API Key
- 不需要
- 兼容的系统
- 未声明(默认跨平台)
- 底层运行要求
- Python
- 文件与系统权限
-
- 只读
- 允许写入 / 修改
- Shell 执行
- 网络行为
- 仅限本地
- 安装命令数
- 26 条
档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。
需要注意: 未限定 allowed-tools,默认拥有全部工具权限。
---
name: skill-evolve
description: Optional sidecar skill for controlled feedback-driven skill evolution. Not part of the default p…
category: 通用
runtime: Python
---
# skill-evolve 输出预览
## PART A: 任务判断
- 适用问题:通用任务拆解、检查和交付。
- 输入要求:目标材料、限制条件、期望输出和验收方式。
- 证据边界:围绕“What This Skill Is / What This Skill Is NOT / When to Use This Skill”读取原文规则,不把推断写成作者承诺。
## PART B: 执行结果
- **01** 任务判断:确认你的需求是否属于通用任务拆解、检查和交付,并标出输入、限制和预期结果。
- **02** 执行计划:优先按“What This Skill Is / What This Skill Is NOT / When to Use This Skill”拆成步骤,说明每一步会读取什么、修改什么、产出什么。
- **03** 交付结果:给出可复制的命令、文件改动、检查清单或内容草稿,并说明如何继续迭代。
- **04** 风险边界:结合 读取文件、写入/修改文件、执行终端命令、主要在本地完成、通常不需要额外 API Key 给出执行前确认项。
## Running Rules
- 读取文件、写入/修改文件、执行终端命令;主要在本地完成;通常不需要额外 API Key。
- 先小样例验证,再放大到真实任务。
- 交付时同时给结果、检查口径和下一步迭代建议。 原文出现了 `/path` 这类斜杠命令;如果你的 Agent 支持命令触发,优先用命令开场,再补充目标和边界。
告诉 Agent 目标文件或材料、期望结果、不可改范围、是否允许联网或执行命令。本 Skill 的权限画像是:读取文件、写入/修改文件、执行终端命令。
先用一个小任务确认它会围绕“What This Skill Is / What This Skill Is NOT / When to Use This Skill”工作;涉及文件或命令时,先看 diff、日志、预览或测试结果。
检查最终产物是否包含明确结果、必要证据和下一步动作;如果输出泛泛而谈,就补充输入、边界和验收标准后重跑。
---
name: skill-evolve
description: Optional sidecar skill for controlled feedback-driven skill evolution. Not part of the default p…
category: 通用
source: gaotiexinqu/OneResearchClaw
---
# skill-evolve
## 什么时候使用
- 把通用方向的常用动作沉淀成 Agent 可调用的技能 适合处理通用任务拆解、检查、交付和复盘,核心价值是把输入、判断、执行、验证和交付边界固定下来,避免 Agent 泛泛回答。 把任务拆成可执行、可检查、可继续迭代的步骤;通常不需要额外…
- 面向通用任务拆解、检查和交付,优先处理能明确输入、步骤和验收标准的工作。
## 需要提供什么
- 目标材料、目录范围、期望结果和不可改动内容。
- 是否允许联网、执行命令、读写文件或调用外部服务。
## 执行规则
- 围绕「What This Skill Is / What This Skill Is NOT / When to Use This Skill」组织步骤,不把推断写成作者事实。
- 读取文件、写入/修改文件、执行终端命令;主要在本地完成;通常不需要额外 API Key。
- 先跑小样例,确认结果可检查后再扩大任务范围。
## 输出要求
- 给出最终产物、关键证据、验证方式和下一步动作。
- 信息不足时标记 unknown,不编造命令、平台或依赖。 作者原文负责流程事实;仓库文件负责来源和命令;流狐只补充适用场景、限制和质量判断。
skill "skill-evolve" {
输入层 -> 用户目标 + 目标文件 + 禁止范围 + 验收标准
上下文层 -> What This Skill Is / What This Skill Is NOT / When to Use This Skill
规则层 -> SKILL.md 触发条件 / 执行顺序 / 输出格式
运行层 -> Python | 读取文件、写入/修改文件、执行终端命令 | 主要在本地完成
安全层 -> 通常不需要额外 API Key + 小任务验证 + diff / 日志复核
输出层 -> 可复制结果 + 检查清单 + 下一步迭代
} Skill Evolve (Optional Sidecar)
This is an OPTIONAL sidecar capability, NOT part of the default pipeline.
What This Skill Is
Skill Evolve is a controlled, opt-in framework for turning real user feedback into skill improvements over time.
It is designed to:
- Collect and normalize user feedback
- Generate minimal patch proposals
- Require manual review/refinement of generated patch proposals before real patch application
- Test reviewed patches in isolated workspaces
- Run regression gates
- Promote verified patches to new stable versions
- Preserve the default
.cursor/skills/tree unchanged unless a human later chooses to merge approved changes manually
What This Skill Is NOT
This skill must NOT:
- Run automatically during normal report generation
- Modify stable skills without explicit evolve flow
- Replace human judgment with automated decisions
- Make the default pipeline behave differently
When to Use This Skill
Use this skill when:
- User explicitly requests "skill evolution" or "feedback-driven improvement"
- User provides feedback that should be tracked and potentially addressed
- User wants to analyze and improve the skill framework
Do NOT use this skill when:
- Generating reports (use
one-reportinstead) - Running normal pipeline operations
- User has not explicitly requested skill evolution
Controlled Evolve Loop Flow
When explicitly invoked, follow this controlled flow:
Step 1: Collect Feedback
Use collect_feedback.py to ingest raw user feedback:
python .cursor/skills/skill-evolve/scripts/collect_feedback.py --interactive
# OR
python .cursor/skills/skill-evolve/scripts/collect_feedback.py --text "feedback text"
# OR
python .cursor/skills/skill-evolve/scripts/collect_feedback.py --file /path/to/feedback.txt
Raw feedback preserves user language and is saved to:
{WORKSPACE}/.skill-evolve-data/feedback/raw/
Step 2: Normalize Feedback
Convert raw feedback to structured format:
python .cursor/skills/skill-evolve/scripts/normalize_feedback.py \
--feedback-id FB-XXXXXX \
--stage <grounding|research|summary|review|export> \
--skill <skill-name>
Normalized feedback is saved to:
{WORKSPACE}/.skill-evolve-data/feedback/normalized/
Step 3: Propose Minimal Patch
Generate a patch proposal from normalized feedback:
python .cursor/skills/skill-evolve/scripts/propose_skill_patch.py \
--feedback-id FB-XXXXXX,FB-YYYYYY
Patch proposals are saved to:
{WORKSPACE}/.skill-evolve-data/patch_proposals/proposed/
Change Unit
A patch proposal is not just a single modified skill file, but a complete change unit containing:
- Main File: The skill being modified
- Dependency References: All other skills/agent configs that reference this skill
- Auto-generated Assertions: For regression gate verification
Dependency Reference Scanning
When generating a proposal, the agent must:
- Identify Main File: Determine which skill is the modification target
- Scan Dependencies: Search all skills and agent configs to find references to the main file
- Check other skills' "What This Skill Is" or invocation chain descriptions
- Check agent configs for skill references
- Check prompting templates for skill paths
- Declare Reference Points: List all locations requiring sync updates in the proposal
- Analyze Impact Scope: Distinguish between "description update only" and "behavior sync required" references
Example:
If the modification target is grounded-review:
- Main File:
.cursor/skills/grounded-review/SKILL.md - Dependency References:
.cursor/skills/one-report/SKILL.md(as sub-process reference).cursor/agents/reviewer.md(agent config)
Auto-generated Assertions
The proposal script should auto-generate assertions rather than relying on manual creation:
Analyze planned_changes:
- If
beforecontent exists → generatenot_containsassertion to verify old content removed - If
aftercontent exists → generatecontainsassertion to verify new content added - Numeric changes (90→95) → generate
regex_matchassertion
- If
Minimal Assertion Set:
- Core semantic changes must be covered by assertions
- Avoid redundant assertions (one
containscan verify content without splitting) - Empty tests cannot pass vacuously (reject if no changes)
Cross-file Assertions:
- If dependency references also need updates, those points should have corresponding assertions
- Ensure consistency between main file and reference points
Auto-generated Assertion Example (threshold 90→95):
{
"assertions": [
{
"name": "threshold_updated_to_95",
"type": "contains",
"file": "grounded-review/SKILL.md",
"pattern": "weighted total >= 95"
},
{
"name": "old_threshold_90_removed",
"type": "not_contains",
"file": "grounded-review/SKILL.md",
"pattern": "weighted total >= 90"
},
{
"name": "one_report_sync",
"type": "contains",
"file": "one-report/SKILL.md",
"pattern": "review threshold"
}
]
}
Step 4: Review and Refine Patch Proposal
Before applying any changes, review and refine the proposed planned_changes so they contain concrete, safe edits.
Do not treat an auto-generated proposal as ready-to-apply by default.
Step 5: Apply Patch Candidate
Apply the reviewed patch to an isolated workspace for testing:
python .cursor/skills/skill-evolve/scripts/apply_patch_to_workspace.py \
--proposal-id PP-XXXXXX \
--apply-changes
This creates a candidate workspace without modifying stable skills.
Step 6: Run Regression Gate
Test the patch against evaluation cases:
python .cursor/skills/skill-evolve/scripts/run_regression_gate.py \
--proposal-id PP-XXXXXX
Results are saved to:
{WORKSPACE}/.skill-evolve-data/evaluations/results/
Regression Gate for Change Units
Regression gate must verify the complete change unit:
- Main File Assertions: Verify core changes in the main skill file
- Dependency Reference Assertions: Verify sync updates for all dependency reference points
- Consistency Checks: Ensure descriptions/behaviors match between main file and references
Assertion File Path Resolution
The file field in assertions is resolved relative to workspace root:
grounded-review/SKILL.md→{workspace}/grounded-review/SKILL.mdone-report/SKILL.md→{workspace}/one-report/SKILL.md.cursor/agents/reviewer.md→{workspace}/.cursor/agents/reviewer.md
Failure Handling
If any assertion fails (main file or dependency reference), gate result is reject:
{
"decision": "reject",
"reason": "Dependency reference out of sync: one-report/SKILL.md missing review threshold update"
}
Step 7: Promote or Reject
If gate passes, promote the candidate:
Standard promotion (creates versioned directory only):
python .cursor/skills/skill-evolve/scripts/promote_skill_version.py \
--gate-id GR-XXXXXX \
--notes "Description of changes"
Sync promotion (also updates stable skills/):
python .cursor/skills/skill-evolve/scripts/promote_skill_version.py \
--gate-id GR-XXXXXX \
--notes "Description of changes" \
--sync
Result (standard):
- Original
.cursor/skills/remains untouched - New
.skill-evolve-data/skills-versions/v002/created with patches applied
Result (--sync):
- Versioned directory created as above
- Additionally: stable
.cursor/skills/is updated with approved patches - Consistency checks run to ensure no old patterns remain
Consistency Check Feature: The promote script now runs full line-by-line checks on patched files to ensure:
- No remaining old patterns (e.g.,
weighted_total >= 90when it should be>= 95) - Cross-file consistency (all related files updated together)
- Report any missed updates before finalizing
If gate fails, the patch is rejected and stable version remains unchanged.
Version Management
Stable Version Pointer
Located at: {WORKSPACE}/.skill-evolve-data/stable/current_version.json
Contains:
- Current stable version ID
- Path to version manifest
- Last update timestamp
Version Manifests
Located at: {WORKSPACE}/.skill-evolve-data/versions/vXXX/version_manifest.json
Contains:
- Version ID
- Based-on version
- Accepted patch IDs
- Passed gate IDs
- Rollback information
Safety Principles
- Opt-in Only: Nothing runs automatically
- Isolation: Patches are tested in isolated workspaces
- Human Approval: Promotion requires successful gate + explicit promotion call
- Rollback Ready: Every stable version knows its rollback target
- No Overwrite: Stable skills are never modified without explicit promotion
Directory Layout
Skill Code (in .cursor/skills/skill-evolve/)
.cursor/
skills/
skill-evolve/
SKILL.md # This file
scripts/ # Evolution workflow scripts
schemas/ # JSON schemas
Data Directory (in {WORKSPACE}/.skill-evolve-data/)
{WORKSPACE}/
.skill-evolve-data/
stable/
current_version.json
versions/
v001/
version_manifest.json
vXXX/
skills-versions/ # Versioned skill+agent snapshots (created on promotion)
v001/
agents/ # copy of .cursor/agents/
skills/ # copy of .cursor/skills/
v002/
agents/
skills/
feedback/
raw/ # Original user feedback
normalized/ # Structured feedback
patch_proposals/
proposed/ # Generated proposals
accepted/ # Successfully promoted
rejected/ # Failed or rejected
evaluations/
cases/ # Evaluation case definitions
results/ # Gate execution results
Key Design Principle
- Skill code stays in
.cursor/skills/skill-evolve/(git-managed) - Versioned snapshots go to
.skill-evolve-data/skills-versions/(each version contains bothagents/andskills/sub-dirs) - Runtime data goes to
{WORKSPACE}/.skill-evolve-data/(local, git-ignored)
Example Invocation
User explicitly requests skill evolution:
Use the skill-evolve framework to analyze my feedback and propose improvements.
My feedback: The grounded-research-lit skill sometimes opens fewer papers than the `MIN_OPENED_PAPERS` threshold set by `research_mode`. The cursor backend should ensure the configured minimum number of unique papers are opened before proceeding to summary.
Feedback ID reference: FB-280408 (collected earlier)
Agent would then:
- Normalize the feedback with appropriate stage and skill
- Propose a minimal patch
- Apply to candidate workspace
- Run regression gate
- Report results for human decision
Summary
| Aspect | Default Pipeline | Skill Evolve |
|---|---|---|
| Activation | Automatic | Explicit request only |
| Purpose | Report generation | Skill improvement |
| Modifications | None | Controlled via gate |
| Automatic changes | Yes | No |
| Human approval | N/A | Required for promotion |
Important Activation Rule
Promotion updates the Skill Evolve stable pointer and creates a new versioned snapshot such as .skill-evolve-data/skills-versions/v002/, which contains both agents/ and skills/ sub-directories. This ensures every version is self-contained and reproducible.
It does not automatically rewrite ordinary prompts or make the default .cursor/skills/ or .cursor/agents/ trees behave differently.
If a user wants to use a promoted version in a future chat, they must explicitly point the prompt at that versioned snapshot path or manually merge the approved changes back into .cursor/skills/ and .cursor/agents/.
Rejection Path
If a proposal is not suitable or fails the regression gate, archive it explicitly using:
python .cursor/skills/skill-evolve/scripts/reject_patch_proposal.py \
--proposal-id PP-XXXXXX \
--reason "Why this proposal is rejected"
Do not leave failed proposals ambiguous if you already know they should not be promoted.
先判断是否适合
作者设计意图
作者的方法与取舍
边界和复核