{"id":51609608,"url":"https://github.com/learnprompt/loop-engineering","last_synced_at":"2026-07-12T06:02:32.559Z","repository":{"id":370744950,"uuid":"1273269588","full_name":"LearnPrompt/loop-engineering","owner":"LearnPrompt","description":"Loop Engineering skill / 愚公: forge vague automation wishes into verifiable goals and self-running agent loops for Claude Code and Codex.","archived":false,"fork":false,"pushed_at":"2026-07-10T16:40:11.000Z","size":3088,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-07-10T18:12:23.111Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LearnPrompt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"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-06-18T11:09:01.000Z","updated_at":"2026-07-10T17:17:05.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/LearnPrompt/loop-engineering","commit_stats":null,"previous_names":["learnprompt/loop-engineering"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/LearnPrompt/loop-engineering","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LearnPrompt%2Floop-engineering","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LearnPrompt%2Floop-engineering/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LearnPrompt%2Floop-engineering/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LearnPrompt%2Floop-engineering/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LearnPrompt","download_url":"https://codeload.github.com/LearnPrompt/loop-engineering/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LearnPrompt%2Floop-engineering/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35383520,"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-12T02:00:06.386Z","response_time":87,"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":[],"created_at":"2026-07-12T06:02:28.779Z","updated_at":"2026-07-12T06:02:32.557Z","avatar_url":"https://github.com/LearnPrompt.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# Loop Engineering ｜ 愚公\n\n\u003e *「别再一轮一轮手动催 Agent 了——把山交给一个会自己挖的循环。」*\n\n[![Agent Skills](https://img.shields.io/badge/Agent%20Skills-loop--engineering-blueviolet)](skills/loop-engineering/SKILL.md)\n[![skills.sh](https://skills.sh/b/LearnPrompt/loop-engineering)](https://skills.sh/LearnPrompt/loop-engineering)\n[![Multi-Runtime](https://img.shields.io/badge/Runtime-Claude%20Code%20%2B%20Codex-2ea44f)](skills/loop-engineering/references/codex-render.md)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n\n**Loop Engineering（循环工程）落地脚手架：把一句模糊的「我想自动搞定 X」，装配成 goal、intake、trigger、worktree、maker/checker、connectors、state、verification、guardrails 都齐备的自跑 Loop，最后把可一键执行的命令交到你手上——扳机你自己扣。**\n\n[看效果](#效果示例) · [安装](#快速开始) · [触发方式](#触发方式) · [它和同类有什么不同](#它和同类有什么不同) · [安全边界](#安全边界)\n\n\u003c/div\u003e\n\n---\n\n![Loop Engineering / 愚公 overview](assets/hero.svg)\n\n---\n\n## 它解决什么问题\n\nLoop Engineering（循环工程 / 环路工程）是 Prompt Engineering → Context Engineering → Harness Engineering 之后的**第四阶段**：你不再一轮一轮手动提示 Agent，而是**设计一个能自己跑的循环**——自主发现任务、执行、验证、迭代到目标达成。\n\n可问题是，自己手搓一个 loop 很容易翻车：目标写成「优化一下」于是循环永远停不下来；让 Agent 自己给自己打分于是它自我感觉良好地跑偏；忘了设 token 上限于是一夜烧光预算；子 Agent 卡在一个你看不见的权限弹窗上静默挂死。\n\n**愚公**把这些坑都焊进流程。它不替你跑 loop，而是把你的愿望**备料到「一键可发」**：goal 只是停止判据，真正交付的是一张 Loop Components Matrix，把 intake、trigger、worktree、maker/checker、connectors、state、verification、guardrails 全部落到文件、命令和 runtime 配置里。最后那一下扳机，永远是你的祈使句。\n\n## 效果示例\n\n输入一句话：\n\n```text\n用鲁班 skill 检测我 GitHub 上所有 skill，做一遍全面升级；\n升级过程中遇到的问题，回馈给鲁班让它自己升级。\n```\n\n愚公走完六步（采石 → 立志 → 分工 → 通路 → 刻石 → 交令），先交付组件矩阵，再渲染可直接复制的 `/goal` 和 Codex Automation：\n\n```text\nLoop Components Matrix\nGoal: manifest 无 pending；done 必须有 draft PR；blocked 必须有原因\nIntake: REPOS.md 每行一个 skill 仓库，manifest.json 记录状态\nTrigger: on-demand drain；反馈 ≥5 条时触发鲁班 self-upgrade issue\nWorktree: 每个 skill 独立 worktree，任务终结前不复用\nMaker: luban skill 五步打磨，产出报告 + draft PR\nChecker: 独立 agent 验收 frontmatter、diff、测试、泄露、反馈质量\nConnectors: gh 优先读写 GitHub；文件系统读写 manifest/log/feedback\nState: manifest.json + luban-feedback.md + run log\nVerification: check-skill-repo.sh、diff \u003c50 行非测试、secret scan\nGuardrails: 不 merge、不发版、不删除；先 2 仓 dry-run；高风险 blocked\nRuntime: Claude Code /goal；Codex on-demand Automation + background worktree\n```\n\n然后才是 runtime handoff：\n\n```text\n/goal 读取 REPOS.md 列出的每个 skill 仓库，逐个完成鲁班升级，直到 manifest.json 无 pending：\n对每个 skill：① 跑 check-skill-repo.sh ② 鲁班五步出 draft PR（不自动 merge）\n③ 独立 checker 验收 ④ 卡点追加进 luban-feedback.md ⑤ 更新 manifest\n完成判据：每个 skill 状态 ∈ {done, blocked}；每个 done 有 draft PR；反馈 ≥5 条则对 luban 开 self-upgrade issue\n护栏：高风险动作 blocked 交人类；maker/checker 分两个 agent；commit 即 push；优先 gh/curl；先 2 仓 dry-run\n```\n\n外加 manifest/feedback/component-matrix 模板、Codex 等价 Automation 配置。完整范例见 [`examples/luban-fleet-upgrade-case.md`](skills/loop-engineering/examples/luban-fleet-upgrade-case.md)。\n\n### 真实验证回放\n\n![demo](assets/demo.gif)\n\n## 快速开始\n\n```bash\nnpx skills add LearnPrompt/loop-engineering\n```\n\n装完对 Agent 说：\n\n```text\n帮我把「\u003c你想反复自动化的事\u003e」做成一个 Loop Engineering 循环，出组件矩阵、Loop Spec 和双 runtime 命令。\n```\n\n## 触发方式\n\n- 「做一个 Loop Engineering / 设计一个循环工程」\n- 「把这个任务做成 loop / 做成 goal」\n- 「让 agent 自己跑、自主迭代到完成」\n- 「把每天 triage issues / 依赖升级 / skill 升级做成自动循环」\n- 「帮我开 goal / 设计 /goal / 设计 /loop」\n- 「愚公，把这件事架成能自跑的」\n\n## 能做什么 / 它会交付什么\n\n| 能力 | 交付物 |\n|---|---|\n| 装配组件 | Loop Components Matrix：goal、intake、trigger、worktree、maker/checker、connectors、state、verification、guardrails、handoff |\n| 锻造 goal | 二元可验证的 `done_when` 清单 + 反 Goodhart 防作弊条款 |\n| 架脚手架 | maker/checker prompt、worktree 隔离、连接器、心跳触发、验证门 |\n| 持久化状态 | `manifest.json` + 日志，扛上下文压缩、不重复劳动 |\n| 双 runtime 渲染 | Claude Code 的 `/goal`·`/loop` + Codex 的 Automations，同一份 Loop Spec 两套命令 |\n\n## 它和同类有什么不同\n\n| 维度 | 普通「帮我写个自动化脚本」 | 愚公 / Loop Engineering |\n|---|---|---|\n| 目标 | 自然语言描述，易跑偏 | 二元可验证 `done_when`，机器判真假 |\n| 组件 | 通常只写 prompt 或脚本 | 组件矩阵先行，入口/触发/隔离/状态/验证全部有落点 |\n| 验收 | Agent 自己说「好了」 | maker/checker 分手，独立验收 |\n| runtime | 绑死一个 | Loop Spec 中立，Claude Code + Codex 双渲染 |\n| 安全 | 容易自动 merge/烧钱 | 高风险动作进停手点，扳机交人类 |\n\n## 安全边界\n\n- **不替你扣扳机**：愚公只渲染命令，开 `goal`/`loop` 是你的祈使句。\n- **高风险动作进停手点**：merge、发版、删除、外部写操作一律 blocked 交人类，不进自动判据。\n- **不烧冤枉钱**：每个 loop 强制迭代上限 + token 预算 + 首跑 dry-run + 小样本起步。\n- **优先 CLI**：子 agent 用 `gh`/`curl`，不默认会弹窗的工具，避免静默卡死。\n\n## 文件结构\n\n```\nloop-engineering/\n├─ skills/loop-engineering/\n│  ├─ SKILL.md                       # 愚公六步法本体\n│  ├─ references/\n│  │  ├─ loop-spec-schema.md         # runtime 中立的 Loop Spec\n│  │  ├─ component-stack.md          # Loop 组件装配清单\n│  │  ├─ goal-forging.md             # 二元判据 + 反 Goodhart\n│  │  ├─ claude-code-render.md       # → /goal /loop hooks\n│  │  ├─ codex-render.md             # → Automations AGENTS.md\n│  │  └─ guardrails.md               # token/HITL/worktree/权限弹窗\n│  ├─ templates/                     # component matrix / REPOS / manifest / maker / checker / feedback\n│  └─ examples/\n│     └─ luban-fleet-upgrade-case.md # 鲁班舰队升级 + 鲁班自举 全程范例\n├─ README.md · LICENSE · .claude-plugin/marketplace.json\n```\n\n## 验证与测试\n\n```text\n帮我把「每天给我所有仓库的 CI 失败 triage 一遍并 draft 修复」做成 loop。\n```\n\n合格表现：愚公会拒绝模糊判据、逼你把「triage 完」定义成机器可验证的条件，先产出组件矩阵，再产出带 `done_when`、护栏、双 runtime 命令的完整设计，并在最后停手等你开 goal。\n\n## 致谢\n\nLoop Engineering 概念脉络参考 Addy Osmani、Peter Steinberger、Boris Cherny 等人的公开论述；工程纪律（验证门、信任阶梯、停手点、工位纪律）继承自同门 [鲁班 luban-skill](https://github.com/LearnPrompt/luban-skill)。\n\n## License\n\n[MIT](LICENSE)\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n*移山不靠一锹，靠一个会自己挖的循环。*\n\n\u003c/div\u003e\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**更多好用 Skill · More Skills** → [learnprompt.pro/skills](https://learnprompt.pro/skills/)\n\n[鲁班·Skill打磨](https://github.com/LearnPrompt/luban-skill) · [庖丁·博主蒸馏](https://github.com/LearnPrompt/paoding-skill) · [蔡伦·对话造纸](https://github.com/LearnPrompt/cailun-skill) · [阿福·LLM Todo](https://github.com/LearnPrompt/afu-llm-todo) · [愚公·Loop工程](https://github.com/LearnPrompt/loop-engineering) · [搭子·结对开发](https://github.com/LearnPrompt/partner-skill) · [AI雷达·零API资讯](https://github.com/LearnPrompt/ai-news-radar)\n\n[淘金小镇·ClawHub日榜](https://github.com/LearnPrompt/skillrush-town) · [Irasutoya·正文配图](https://github.com/LearnPrompt/carl-irasutoya-illustrations) · [Humanize PPT·演讲系统](https://github.com/LearnPrompt/humanize-ppt) · [CC Harness·六件套](https://github.com/LearnPrompt/cc-harness-skills) · [微信读书教练](https://github.com/LearnPrompt/carl-weread) · [X Article发布](https://github.com/LearnPrompt/x-article-publisher-skill)\n\n\u003csub\u003e**[LearnPrompt](https://github.com/LearnPrompt) 出品** · 公众号「卡尔的AI沃茨」 · [X @aiwarts](https://x.com/aiwarts)\u003c/sub\u003e\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flearnprompt%2Floop-engineering","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flearnprompt%2Floop-engineering","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flearnprompt%2Floop-engineering/lists"}