From 36fe3c8575221f064b5b07a6295a92730f9aabe8 Mon Sep 17 00:00:00 2001 From: openhands Date: Fri, 13 Mar 2026 11:26:52 +0000 Subject: [PATCH] =?UTF-8?q?lesson:=20dep=20resolution=20=E2=80=94=20trust?= =?UTF-8?q?=20closed=20state,=20don't=20hunt=20for=20PRs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- factory/best-practices/dev-agent.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/factory/best-practices/dev-agent.md b/factory/best-practices/dev-agent.md index 1f8b6f6..03bd4aa 100644 --- a/factory/best-practices/dev-agent.md +++ b/factory/best-practices/dev-agent.md @@ -35,3 +35,15 @@ - Feature issues MUST list affected e2e test files - CI fix loop is essential — first attempt rarely works - CLAUDE_TIMEOUT=7200 (2h) is needed for complex issues + +## Dependency Resolution + +**Trust closed state.** If a dependency issue is closed, the code is on master. Period. + +DO NOT try to find the specific PR that closed an issue. This is over-engineering that causes false negatives: +- Codeberg shares issue/PR numbering — no guaranteed relationship +- PRs don't always mention the issue number in title/body +- Searching last N closed PRs misses older merges +- The factory itself closes issues after merging, so closed = merged + +The only check needed: `issue.state == "closed"`.