Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions emrg/server/evolution_prompt.md
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,7 @@ cd {{ source_dir }} && gh pr list -R {{ owner }}/{{ repo }} --limit 20
- **⚡ Before posting any LGTM, confirm the PR has CI checks; if none reported, re-trigger** (#644 lesson: the PR's push event can be dropped — branch had zero checks while both local runs were green and a parallel cycle had already LGTM'd; CI re-validation was only caught by checking `gh pr checks <N>`):
- `gh pr checks <N> -R {{ owner }}/{{ repo }}` → "no checks reported" means the push event was lost, NOT that CI passed
- Re-trigger: `gh workflow run test.yml --ref <branch>` (workflow_dispatch, #527) or `scripts/re-trigger-ci.sh <branch>` (#529), then wait for the run to complete before LGTMing
- **⚠️ A CONFLICTING fork PR also gets zero CI checks** (#716 lesson: `mergeable: CONFLICTING` / `mergeable_state: dirty` → GitHub refuses to run CI for a dirty PR; `gh workflow run` cannot target fork refs, close/reopen does NOT re-fire checks for dirty PRs). Unblock path: check `maintainer_can_modify: true`, fetch `refs/pull/N/head`, create a local branch, `git merge master`, resolve conflicts, `git push <fork-remote> <branch>:<fork-branch>` — the `pull_request` synchronize event then fires CI. Post a comment explaining the maintainer push. Never ask the author to rebase blindly when you can resolve the conflict yourself as Committer.
- Local verification (pytest + npm test) is necessary but NOT sufficient — CI is the only place the actionlint gate (#444) and the full doc-count guard (#511) run
- Check merge conditions: does the PR's comment history already have 3 consecutive ✅ from different cycles with no ❌ in between?
- ⚠️ Query comments with the REST API (GraphQL needs `read:org` scope, often missing from the token):
Expand Down Expand Up @@ -340,6 +341,7 @@ When reading rants, follow these rules:
> - Test workflow manual dispatch (#527 test.yml 加 workflow_dispatch 触发:push 事件被丢/CI 队列故障时 `gh workflow run test.yml --ref <branch>` 手动重触发,替代空 commit 重触发(空 commit 污染 git 历史且 push 管线若坏同样无效);actionlint gate 已验) ✅
> - CI re-trigger one-click script (#529 scripts/re-trigger-ci.sh [branch]:宿主侧一键 dispatch 重触发(默认当前分支,set -euo pipefail),替代手记 gh workflow run 命令/空 commit;Agent.md CI 段已文档化) ✅
> - CI-check pre-LGTM gate (#645 #644 教训:PR push 事件可被丢弃——branch 零 checks 而本地双跑绿 + 并行周期已 LGTM,`gh pr checks <N>` 才暴露;LGTM 前必须确认 CI checks 存在,无则 workflow_dispatch 重触发(#527/#529)等成功后再说;本地验证必要但不充分——actionlint gate #444 + doc-count guard #511 只在 CI 跑) ✅
> - Fork-PR conflict CI unblock (#716 教训:**冲突中的 fork PR 零 CI checks**——`mergeable: CONFLICTING`/`mergeable_state: dirty` 时 GitHub 拒跑 CI,close/reopen 与 workflow_dispatch(无法 target fork ref)均无效;唯一解=maintainer push:`maintainer_can_modify:true` → fetch `refs/pull/N/head` → 本地 merge master 解冲突 → push 到 fork 分支 → `pull_request` synchronize 触发 CI;Committer 可直接代解冲突,不必等作者反复 rebase) ✅
> - saturation halt auto-resume (#531 scheduler _saturation_halt_active:停机(≥30 空循环)后 scheduled run 全 skip → handler 无法自检 HEAD 变化,只有手动 /trigger 能恢复;_remote_advanced 用 git ls-remote 对比 origin/master,上游推进即自动恢复+计数清零;+4 测试正反两态/边界/无 git 仓库不崩) ✅
> - README MANIFESTO intro anglicized (#533 README.md 行 25 MANIFESTO 中文引言→英文;MANIFESTO.md 零改动(宿主方案 C);行 16 语言切换器 + 行 71 `卸载 EMRG.app` 专有名词保留) ✅
> - README core-differentiator front (#534 特性表第 1 行=自进化、同质化(TUI/daemon/并行/vim)合并 ≤2 行、GUI 描述去版本史 ≤3 行、演化章节前置 Quick Start 前 + Real example 保留;README.md/README.cn.md 同步) ✅
Expand Down
Loading