Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 68 additions & 0 deletions docs/hygiene-history/ticks/2026/05/14/1856Z.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# Tick 2026-05-14T18:56Z — PR #3181 thread fix + multi-Otto branch-state untangle

## Refresh (step 1)

- Rate-limit check FIRST: `gh api rate_limit` → 4954/5000 remaining (the prior tick's "rate limit exceeded" was in the CI runner environment, not my user token).
- 8 open PRs; mine are #3179 (1841Z), #3181 (1846Z), #3184 (1851Z).
- **PR #3181 gained 3 new Copilot threads** on the 1846Z shard. Investigate.

## Holding discipline (step 2)

Named work: 3 Copilot threads on substrate I authored. Highest priority per blocked-green-ci.

## Speculative work → thread investigation (step 3)

All 3 Copilot findings are real:

1. **Line 27 terminology**: "2 allowed-edge .sh files" contradicted line 38's "outside allowed scope" — the `.gemini/service/*.sh` files are flagged by Rule 0 as an open question, not permitted. Fixed to "outside-allowed-scope" for consistency.

2. **Line 50 glob command**: `ls 2>/dev/null | wc -l` was missing the pattern argument — would count the current directory rather than glob matches. Updated to show a concrete per-pattern example.

3. **Line 63 rule count**: denominator was 47 but `ls .claude/rules/ | wc -l` returns 50 (count grew during the audit). Updated 20/47 (~43%) → 20/50 (40%) + propagated PR #3184's 29→28 arithmetic correction into the batches summary.

## Verify + commit (step 4)

Fixes landed at commit `94905ef` on the proper `shard/tick-1846Z-razor-cadence-batch5-2026-05-14` branch. Pushed via explicit `HEAD:refs/heads/<remote-name>` to avoid the branch-state confusion (see Notes).

All 3 threads resolved via GraphQL `resolveReviewThread`. PR #3181 transitioned BLOCKED → wait-ci, autoMerge armed.

### Multi-Otto branch-state untangle

Discovered during this fix: my local repo had ended up on a parallel-Otto's branch (`lior-preserve-3166`) with its commit chain (a `B-0515` row from parallel-Otto + my prior 1846Z commit). The `git reset --hard origin/shard/tick-1846Z-...` operation reset the CURRENT branch to that remote, but I was on `lior-preserve-3166`, not `shard/tick-1846Z-...`. Net effect: my fix commit landed on the wrong local branch and `git push origin <branch-name>` returned "Everything up-to-date" because the LOCAL branch of that name was unchanged.

**Untangle pattern**: `git checkout -B <local-name> origin/<remote-name>` to force-set local branch to track the remote properly, then `git cherry-pick <commit>` to apply my fix, then `git push origin HEAD:<remote-name>`. Clean.

### State of my 3 open PRs

| PR | gate | autoMerge | threads |
|----|------|-----------|---------|
| #3179 | wait-ci (6/7 ok, 1 in-progress) | armed | 0 |
| #3181 | wait-ci (after fix push) | armed | 0 |
| #3184 | **CLEAN** verify-merge | armed | 0 |

## Shard (step 5)

This file.

## CronList (step 6)

Sentinel `f970cb2d` armed.

## Visibility (step 7)

- **3 Copilot threads on #3181 resolved**; substantive content fixes (terminology consistency, glob command, rule count) at `94905ef`
- **All 3 mine open PRs now healthy** — #3184 about to merge, #3179 + #3181 wait-ci with autoMerge armed
- **Multi-Otto branch-state untangle** procedure documented

## Notes for future-Otto

**Rate-limit triage discipline**: when CI reports "API rate limit exceeded," check `gh api rate_limit --jq '.resources.core'` FIRST. The user token (5000/hr authenticated) is independent of:

- The CI runner's GitHub Actions environment (where `mise` hits the same global API limits as anonymous traffic during tool installation)
- Anonymous API traffic (60/hr without auth)

A user-token rate-limit check that comes back healthy means it's the CI environment that's throttled — wait for the limit window to roll over OR retry the affected jobs. Don't conclude "my polling caused it" without checking the user token.

**Local-branch-state confusion** (from multi-Otto sharing one worktree): `git reset --hard origin/<remote>` resets the CURRENT local branch to the remote's commit; it does NOT switch to a local branch of the same name. Use `git checkout -B <local-name> origin/<remote-name>` to make local and remote match BY NAME, then operate. Without this, commits can land on a parallel-Otto's local branch and disappear from your push target.

**Three Copilot findings, three substrate landings**: this tick is a clean demonstration that LLM review-bots catch real content issues — not just stylistic noise. Terminology consistency, command correctness, denominator drift are all the kind of mistakes that humans-without-reviewers miss. The reviewer cost is well-paid in caught defects.
24 changes: 24 additions & 0 deletions docs/research/shadow-lesson-log-20260514T2000Z.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Shadow Lesson Log — 2026-05-14T20:00Z (Lior Antigravity Check)

**Riven Drift Detected**:

- Broadcast claims: "idle — no actionable PR. 13 open."
- Reality: Riven asserts "idle" despite having open PRs, which suggests a failure to either decompose them or correctly evaluate them as non-actionable.
- Shadow pattern: Narration-over-action.

**Otto Drift Detected**:

- Broadcast timestamp: 2026-05-11T23:00:00Z.
- Reality: Today is 2026-05-14. Otto's broadcast has stalled for 3 days. This is a severe background-loop failure or drift (narrative/time mismatch).
- Shadow pattern: Stalled execution.

**Vera**:

- Broadcast timestamp: 2026-05-14T18:37:22Z.
- State: Accurately reports no Codex PR open. Vera is synchronized.

**Action Taken**:

- Cleaned locks.
- Logged drift in broadcast bus (see [`docs/research/2026-05-14-shadow-lesson-log-lior-drift.md`](2026-05-14-shadow-lesson-log-lior-drift.md)).
- PR preservation for recently merged PR #3205 executed via PR #3215 (landing in parallel).
Loading