Skip to content

[Dream Cycle 2026-10-29] routine-self-review: Schedule Contract's FALLBACK trigger conflates "gh broken" with "GitHub unreachable"; six-night evidence gap observed #201

Open

Description

@ruvnet

Rotation

EPOCHDAY % 7 == 0 → DEEP=routine-self-review (overrides slot 4's developer-experience). Session commit 3fc3222d2e5566a203331d3686c4d2eaf06713a8.

Ledger Check

Last real row on main: 2026-10-12 (PR #177). ledgerStale=true, daysSinceLastRow=17, reviewBacklogSize=20 open dream/* PRs, zeroMergeStreak=false (39 merged historically, most recent #177).

Last Forecast, Scored

PR #199 (2026-10-22, issue #198) froze: "0 further self-reported concurrent-session incidents over the next 7 nights, vs. 1 in the 3 CONSOLIDATE nights 2026-10-19→10-21." Measured via list_branches + search_pull_requests/search_issues for 2026-10-23→2026-10-28: zero dream/* branches, issues, or PRs exist in that window at all — not just zero collisions. Verdict: HIT, but vacuous. The guard PR #199 shipped was never exercised because no night reached any mode. Scoring this a clean win would be reward-hacking the self-review; the real finding is the six-night silence itself.

Deep Dive

Two independently reproduced facts, a week apart: gh auth status fails (GH_TOKEN invalid) while mcp__github__get_me succeeds, in both this session and PR #199's. The Schedule Contract's own wording (packages/compile/src/index.ts: step1Ledger() and stopConditions()) says, verbatim, "If gh is unavailable, set FALLBACK=true ... skip remote publication" — read literally, that's a total-night evidence blackout triggered by losing exactly one of two independently-working GitHub paths. Not asserted as the proven cause of the six missing nights (the scheduler exposes no per-night run history to confirm those nights even fired), but a real, live-reproduced defect in the routine's own instructions, and the most leveraged fix available regardless.

Hypothesis (frozen before implementation)

Given a night where gh CLI auth is broken but a GitHub MCP tool remains connected and authenticated, when the Schedule Contract's FALLBACK trigger is redefined from "gh unavailable" to "no GitHub path reachable" (checking both before giving up), then that night continues publishing (branch/PR/issue) via the working path instead of silently going dark, with zero regression in the test suite or any compiled target's golden snapshot.

Evaluation Receipt

Real evaluator: npm test (vitest run && node --test scripts/*.test.mjs). Baseline (3fc3222d, post-unshallow): 886 vitest + 195 governance, all green. Candidate: 887 vitest (+1 new, 0 regressions) + 195 governance (unchanged); lint/typecheck clean; compile-targets.mjs --check clean after regenerating all 5 target mirrors (self-hosted + ruflo/metaharness/ruvector/ruclip — same clause, no per-target parameter).

Darwin Results

DARWIN=not-applicable — a Schedule Contract prose fix has no evolvable population or fitness function.

Evidence

OBSERVATION: no dream/2026-10-2{3..8}-* branch, issue, or PR exists anywhere in the repo. OBSERVATION: gh auth status fails / mcp__github__get_me succeeds, this session. OBSERVATION: PR #199 independently recorded the identical split one week earlier. INFERENCE: the FALLBACK trigger as literally worded is a plausible, reproduced-live mechanism for exactly this failure shape — disclosed as inference, not asserted as proven cause. DECISION: fix the trigger's wording rather than overclaim the diagnosis.

Reward-Hack Check

Self-critique (no independent subagent spun up for this template-only prose change — disclosed as a gap vs. PR #199's practice of using one). No test weakened, no benchmark/threshold/gold data touched; one test added, none removed. The report explicitly refuses to score last week's forecast as a clean win, to avoid the self-review quietly declaring success on a metric that was never actually exercised.

Security Review

Compiled-instructions-only change; no new tool, permission, credential, or network call — names an already-available MCP tool as a permitted fallback path, not a new capability. Reduces an availability/evidence-loss risk rather than introducing one.

Scan Findings

Competitors

Not applicable to a routine-self-review night (STEP 1.6 scope is this routine's own template, not product/SOTA research).

Gist

GIST=LOCAL — no gh CLI, no gist MCP tool tonight (same as PR #199). Full report committed as docs/dream-cycle/2026-10-29-routine-self-review-report.md.

Witness

See the PR's ## Witness section (computed after this issue is filed, per STEP 16).

Recommendation

evaluated: accepted — ship the Schedule Contract wording fix. Separately, a human should check whether this routine's scheduled trigger actually fired on 2026-10-23→2026-10-28 (its own run history isn't visible to this session) to settle whether the six-night gap was caused by this mechanism, a scheduler-level outage, or something else entirely.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions