{"id":51706707,"url":"https://github.com/cenglin123/converge-skill","last_synced_at":"2026-07-16T16:36:52.708Z","repository":{"id":362868919,"uuid":"1252409747","full_name":"cenglin123/converge-skill","owner":"cenglin123","description":"Converge — Dual-agent iterative convergence for plan/code review | 双 Agent 迭代收敛器，用于计划与代码的对抗式审查","archived":false,"fork":false,"pushed_at":"2026-06-30T16:24:31.000Z","size":621,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-06-30T18:15:31.699Z","etag":null,"topics":["ai-agent","code-review","convergence","llm","skill"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cenglin123.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":"GOVERNANCE-DECISIONS.md","roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-28T13:46:51.000Z","updated_at":"2026-06-30T16:24:39.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/cenglin123/converge-skill","commit_stats":null,"previous_names":["cenglin123/converge-skill"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cenglin123/converge-skill","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cenglin123%2Fconverge-skill","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cenglin123%2Fconverge-skill/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cenglin123%2Fconverge-skill/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cenglin123%2Fconverge-skill/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cenglin123","download_url":"https://codeload.github.com/cenglin123/converge-skill/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cenglin123%2Fconverge-skill/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35551282,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-16T02:00:06.687Z","response_time":83,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agent","code-review","convergence","llm","skill"],"created_at":"2026-07-16T16:36:52.012Z","updated_at":"2026-07-16T16:36:52.702Z","avatar_url":"https://github.com/cenglin123.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# converge — 双 Agent 迭代收敛器\n\n双 Agent 迭代收敛，专为 AI 生成产物设计。不同于脚本化工作流，converge 使用独立 Agent 之间的**对抗式审查循环**，通过迭代驱动质量提升——直到 Reviewer 给出 `可执行` verdict 或触发停止条件。\n\n\u003e **框架无关**：Reviewer / Executor 的启动和续命通过抽象能力层（Spawn / Continue / Identify）实现，不绑定特定框架 API。核心预算裁决脚本（file-authoritative `budget_gate.py`）同样宿主无关——reserve/settle/ingest-verdict 的语义在所有框架下一致。\n\u003e\n\u003e **预算执行分 tier**：核心 gate 虽宿主无关，但\"能否在 spawn 前硬阻断\"取决于框架是否提供可阻断的 pre-spawn hook。Claude Code 已落地 `best-effort guarded`（PreToolUse 总量兜底）；opencode / Codex 当前为 `auditable-only`；真正的 `enforced` 仍是未来能力。详见下方「预算执行」。\n\n## 设计哲学\n\n**不要告诉模型该怎么走。告诉它\"到达\"意味着什么，给它验证工具，让它自己找到路径。**\n\nConverge 遵循两条宪法级设计原则：\n\n**Bitter Lesson**（苦涩教训）：手动注入的工作流结构（规范、脚本、硬编码角色）会随着模型能力的提升而逐渐失效。取而代之的是，它定义**验收标准**（contract）、**验证工具**（lint、测试）和**对抗式反馈**（独立 Reviewer）——然后让模型自主探索，直到通过。机制层硬编码（三角色、对抗循环、契约驱动），领域知识层做成 compiled 产物（反模式注册表由真实收敛日志驱动、随命中频率自动衰减）。\n\n**Occam's Razor**（如无必要，勿增实体）：每个文件、每条规则、每个字段必须回答\"它解决什么具体问题\"。解决不了具体问题的抽象一律拒绝。三层分离（机制/宪法/反模式）本身就是 Occam 的应用——不让会变化的反模式知识腐化在不变的机制里；章程瘦身（引用表替代 ~400 行重复模板）同理。已失效的信息（如迁移考古）删除，git log 是它的归宿。\n\n## 工作原理\n\n```\nRound 0：合同谈判（可选前置）\n  Executor 提出验收标准 → Reviewer 挑战 → 形成最终 contract.md\n\nRound 1+：对抗收敛\n  Reviewer（fresh 全新上下文）审计产物 → Executor 修复 → 重复\n\n振荡检测：\n  Type O（推翻）、Type R（重复）、Type F（翻转）、Type S（摆动）\n  → 达到阈值后硬停或上报用户\n```\n\n| 角色 | 担任者 | 关键约束 |\n|------|--------|----------|\n| **Orchestrator** | 主对话 Agent | 不兼任 Reviewer/Executor；只管理循环 + 语义判定 |\n| **Reviewer** | 每轮 Spawn 的独立 Agent | **全新上下文**（看不到历史对话）；prompt 自足 |\n| **Executor** | 每轮 Spawn 的独立 Agent | 全新上下文；prompt 自足 |\n\n## 终止状态与收敛判定\n\n产物通过以下五种方式之一终止收敛循环（详见 `SKILL.md`）：\n\n| 终止类型 | 一句话概要 |\n|----------|-----------|\n| **终止-a 严格首轮通过** | fresh reviewer 首轮 verdict = `可执行`，零阻断 |\n| **终止-b 渐近通过** | blocking 单调下降至 ≤1 低级项，用户确认 |\n| **终止-c 主观接受** | 用户明确说\"够了\" |\n| **预算 gate 阻断** | gate 返回 `BLOCK:*`，无有效 extension 不得续 spawn；用户选择扩容 / 接受 / 简化 / 终止 |\n| **振荡硬停** | Type O/R 达阈值，自动硬停 |\n\n## 预算执行\n\n收敛的 spawn 预算由确定性脚本 `scripts/budget_gate.py` 在每次 spawn 前后裁决，不靠 Orchestrator 记忆计数。执行链路：\n\n```\nreserve → Agent spawn → settle → ingest-verdict\n```\n\n- **reserve**：spawn 前申请额度；`PROCEED:\u003crid\u003e` 方可 spawn，否则按裁决处置\n- **settle**：spawn 后落账（succeeded 须带 instance_id）\n- **ingest-verdict**：reviewer verdict 落盘后驱动 mode 记录与边际递减判定\n\n### 当前能力 tier\n\n| 模式 | 能力 | 当前框架 |\n|------|------|---------|\n| `auditable-only` | 通用；Orchestrator 调用 reserve/settle；ledger + extension 链提供审计，pre-push hook 提供审计（阻断需显式 `CONVERGE_STRICT=1`） | opencode、Codex 及所有框架（缺省） |\n| `best-effort guarded` | Claude Code；在 auditable-only 基础上增加独立、单调的 Agent spawn 总量 hook（= hook-blocked auditable-only） | Claude Code |\n| true `enforced` | 尚未实现；需要角色 FSM、角色不可伪造及权限锁定 | （deferred） |\n\n\u003e `best-effort guarded` **不是** `enforced`——只强制**总 spawn cap**：不执行 per-scope reserve/settle（仍由 Orchestrator 驱动）、不防主动删除或篡改 hook/binding、hook 不写 ledger 也不与 ledger 双计。它解决的是漂移、遗忘和 compaction 后失控。\n\n### 预算阻断处置\n\n达预算上限时 gate 返回 `BLOCK:budget_exhausted` / `blind_exhausted` / `ultraverge_exhausted` / `total_spawn_cap`：**停止**，无有效 `budget_extension`（须关联真实 BLOCK decision 事件 + 用户原话）不得续 spawn。用户选择：扩容续跑 / 接受当前产物（终止-c）/ 简化 plan / 终止。\n\n## 适用场景\n\n- 计划、规范或代码产物，在执行前需要独立交叉验证\n- 复杂产物，单次审查不足以保障质量\n- 质量关键型交付物，要求**零阻断**\n- 可组合为 Dynamic Workflows 中的**质量门控**（L1 信号检测 + L2 单轮对抗审查）\n\n## 不适用场景\n\n- 单次快速审查（使用更轻量的 skill）\n- Lint 级别的检查（使用实际的 lint 工具）\n- 足够简单、不需要对抗验证的任务\n\n## 目录结构\n\n```\nconverge/\n├── SKILL.md                  # 入口：Orchestrator 工作流 + 抽象能力层\n├── scripts/\n│   ├── budget_gate.py             # 预算 gate（file-authoritative，reserve/settle/ingest-verdict/bind + PreToolUse hook）\n│   ├── l1_gate.py                 # L1 信号检测（非 LLM，零 token 成本）\n│   ├── distill_antipatterns.py    # 反模式蒸馏器（全量编译 retrospective → status）\n│   └── hooks/\n│       ├── pre-commit             # 提交前检查\n│       ├── pre-push               # 推送前检查（含孤儿 reservation / stale 检测）\n│       └── stale-check.py         # active/ stale 项检测\n├── tests/\n│   └── test_budget_gate.py        # 预算 gate 验收用例（49 tests，stdlib only）\n└── refs/\n    ├── contract-negotiation.md    # Round 0：合同谈判流程 + contract.md 格式\n    ├── decomposition-protocol.md  # 层级式并行收敛：分解协议、分阶段管控\n    ├── orchestrator-guide.md      # 循环管理、振荡检测、状态跟踪\n    ├── reviewer-prompt.md         # Reviewer prompt 模板 + 硬性规则\n    ├── executor-prompt.md         # Executor prompt 模板 + 反模式防御\n    ├── rubrics.md                 # 主观质量评分维度库\n    ├── state-schema.md            # 跨轮状态持久化 schema\n    ├── testing-toolbox.md         # 外部验证工具（lint、测试、hooks）\n    ├── quality-gate.md            # 质量门控协议，用于 Dynamic Workflows 集成\n    ├── design-review-prompt.md    # 收敛后设计审查：7 维骨架，单轮咨询式\n    └── antipatterns.md            # 反模式注册表（compiled 产物，status 由 distill 维护）\n```\n\n## 验证\n\n```powershell\npython -W always::ResourceWarning tests/test_budget_gate.py\npython -m py_compile scripts/budget_gate.py tests/test_budget_gate.py\ngit diff --check\n```\n\n期望：49 tests OK，无 ResourceWarning。预算 gate 不依赖外部库（stdlib only）。\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcenglin123%2Fconverge-skill","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcenglin123%2Fconverge-skill","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcenglin123%2Fconverge-skill/lists"}