You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: ROADMAP.md
+35Lines changed: 35 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5136,3 +5136,38 @@ Current state is **design question unresolved**. Implementation is straightforwa
5136
5136
**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.
5137
5137
5138
5138
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