mirror of
https://github.com/ultraworkers/claw-code.git
synced 2026-04-24 13:08:11 +08:00
ROADMAP #138: dogfood cycle report-gate opacity — nudge surface needs explicit closure state
This commit is contained in:
parent
a8beca1463
commit
768c1abc78
40
ROADMAP.md
40
ROADMAP.md
@ -5096,3 +5096,43 @@ ear], /color [scheme], /effort [low|medium|high], /fast, /summary, /tag [label],
|
||||
**Blocker.** None. Additive change to existing match arms.
|
||||
|
||||
**Source.** Jobdori dogfood 2026-04-21 12:25 KST on main HEAD `8b52e77` during recurring cron cycle. Joins **Output format completeness** cluster (#90/#91/#92/#127/#130) — all surfaces that produce inconsistent or plain-text fallbacks when JSON is requested. Also joins **CLI/REPL parity** (§7.1) — compact is available as both `--compact` flag and `/compact` REPL command; JSON output gap affects only the flag path. Session tally: ROADMAP #136.
|
||||
|
||||
## Pinpoint #138. Dogfood cycle report-gate opacity — nudge surface collapses "bundle converged", "follow-up landed", and "pre-existing flake only" into single closure shape
|
||||
|
||||
**Gap.** When a dogfood nudge triggers on a branch with landed work, the report surface emits status like "fixed 3 tests, pushed branch, 1 unrelated red remains" — but downstream nudges cannot distinguish:
|
||||
1. `bundle converged, merge-ready` (e.g., #134/#135 branch after fixes)
|
||||
2. `follow-up landed on main, branch still valid` (e.g., #137 + #136 fixes after #134/#135 was ready)
|
||||
3. `only pre-existing flake remains, no new regressions` (e.g., `resume_latest...` test failure on main that also fails on feature branch)
|
||||
4. `work still in flight, blocker not yet resolved`
|
||||
5. `merged and closed, re-nudge is a dup`
|
||||
|
||||
Result: repeat nudges look identical whether the prior work converged or is still broken. Claws re-open what was already resolved, burning cycles on rediscovery.
|
||||
|
||||
**Concrete example from this session:**
|
||||
- 14:30 nudge triggered on bundle already clear (14:25)
|
||||
- Reported finding was "nudge closure-state opacity" but manifested as "should we re-nudge or not?"
|
||||
- No explicit surface like "status: done", "last-updated: 2026-04-21T14:25", "next-action: none" that stops re-nudges on unchanged state
|
||||
|
||||
**Fix shape (~30-50 lines, surfaces not code).**
|
||||
1. Dogfood report should carry an explicit **closure state** field: `converged`, `follow-up-landed`, `pre-existing-flake-only`, `in-flight`, `merged`, `dup`.
|
||||
2. Each state has a **last-updated timestamp** (when report was filed) and **next-action** (null if converged, or describe blocker).
|
||||
3. Nudge logic checks prior report state: if `converged` + timestamp < 10 min old, skip nudge and post "still converged as of HH:MM, no action".
|
||||
4. If state changed (e.g., new commits landed), emit **state transition** explicitly: "bundle done (14:25) → follow-up landed (14:42)".
|
||||
5. Store closure state in a **shared metadata surface** (Discord message edit, ROADMAP inline, or compact JSON file) so next cycle can read it.
|
||||
|
||||
**Acceptance.**
|
||||
- Repeat nudges on converged work are replaced with "no change since last report" (skip).
|
||||
- State transitions are explicit: "was X, now Y" instead of ambiguous "X and also Y".
|
||||
- Claws can scan closure states and prioritize fresh work over already-handled bundles.
|
||||
|
||||
**Blocker.** Design question: **where should closure state live?** Options:
|
||||
- Edit the prior Discord message with a closure tag (e.g., 🟢 CONVERGED).
|
||||
- Add a `.dogfood-closure.json` file to the worktree branch that tracks state.
|
||||
- File a new ROADMAP entry per bundle completion (meta-tracking).
|
||||
- Embedded in claw-code CLI output (machine-readable, but creates coupling).
|
||||
|
||||
Current state is **design question unresolved**. Implementation is straightforward once closure-state model is settled.
|
||||
|
||||
**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.
|
||||
|
||||
Session tally: ROADMAP #138.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user