Skip to content

Commit 883cef1

Browse files
committed
docs: ultraworkers#138 add concrete evidence — feat/134-135 branch pushed but no PR (closure-state gap)
1 parent 768c1ab commit 883cef1

1 file changed

Lines changed: 35 additions & 0 deletions

File tree

ROADMAP.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5136,3 +5136,38 @@ Current state is **design question unresolved**. Implementation is straightforwa
51365136
**Source.** Jobdori dogfood 2026-04-21 14:25-14:47 KST — multi-cycle convergence pattern exposed by repeat nudges on #134/#135 bundle. Joins **Dogfood loop observability** (related to earlier §4.7 session-identity, but one level up — session-identity is plumbing, closure-state is the **reporting contract**). Also joins **False-green report gating** (from 14:05 finding) — this is the downstream effect: unclear reports beget re-nudges on stale work.
51375137

51385138
Session tally: ROADMAP #138.
5139+
5140+
### Evidence for #138 — feat/134-135-session-identity branch is pushed but no PR was opened (2026-04-21 15:05)
5141+
5142+
**Concrete gap observed:**
5143+
- Branch `feat/134-135-session-identity` pushed to `origin` at `7235260` (commits `f55612e`, `2b7095e`, `230d97a`, `7235260`)
5144+
- Dogfood loop declared bundle "merge-ready" at 14:25
5145+
- ~40 min elapsed; no PR opened, no merge, branch still unmerged
5146+
- Meanwhile #136 and #137 landed directly on main (`a8beca1`, `21adae9`) without going through the branch
5147+
5148+
**Direct verification of #135 on main:**
5149+
- `env -i $BIN status --output-format json` on main HEAD `768c1ab` shows `active_session: null, session_id: null`
5150+
- Fields exist in JSON schema (added by schema-only?) but values are None because the producer plumbing (`#134`) is not on main
5151+
- #135 consumer relies on #134 producer; both live on feat/134-135 only
5152+
5153+
**Impact:**
5154+
- `claw status --output-format json` on main returns JSON without the #135 session identity signals (because they're only on feat/134-135)
5155+
- Orchestrators that shipped using the 13:00 "round-trip proof" report believing #134+#135 was merge-ready will get null fields
5156+
- Evidence for #138: "closure-state" = "pushed branch" ≠ "merged" ≠ "in-PR" — nudge surface collapses all three
5157+
5158+
**Proposed closure-state transition:**
5159+
1. `pushed` — branch exists on origin but no PR (current state for feat/134-135)
5160+
2. `in-PR` — PR open, review pending
5161+
3. `approved` — PR approved, awaiting merge
5162+
4. `merged` — in main
5163+
5. `deployed` — if applicable
5164+
6. `abandoned` — PR closed without merge
5165+
5166+
Nudge surface should report explicit state + timestamp: `"feat/134-135 state=pushed (no PR) since 13:00; no closure action taken"` instead of ambiguous "merge-ready."
5167+
5168+
**Token/permission note:**
5169+
- `code-yeongyu` token has write access to push branches to `ultraworkers/claw-code` but lacks `createPullRequest` permission (GraphQL 404)
5170+
- Issues are disabled on the repo (can't open issue-based tracking)
5171+
- Means closure-state tracking must live inside the repo (ROADMAP) or in an external surface (Discord message edits, `.dogfood-closure.json`)
5172+
5173+
**Filed:** 2026-04-21 15:05 KST as evidence for #138 by Jobdori dogfood loop.

0 commit comments

Comments
 (0)