# Conversation 2026-07-31T17-15-51-999Z

## 2026-07-31T17:15:52.583Z · user · cli

For every ticket `tickets/<TICKET>.md` without `<TICKET>.plan.md` and `<TICKET>.lock.md`, add the following to TODO_AGENTS.md
- "Create tickets/<TICKET>.plan.md"

Put the entries in the right `## Priority` following a mix of sensible criteria after reading `tickets/<TICKET>.md` (e.g. if ticket seems low effort => higher priority).

You are one agent of a concurrent batch, so the scope above narrows: spike & plan exactly one ticket, `tickets/2026-07-28_goal-autonomous-quick-wins.md`, and no other.

Your claim on it is already in place: `tickets/2026-07-28_goal-autonomous-quick-wins.lock.md` holds `CLAIMED: spike-1785518149410-0`. Write the real `tickets/2026-07-28_goal-autonomous-quick-wins.plan.md`, and delete `tickets/2026-07-28_goal-autonomous-quick-wins.lock.md` in the same commit — the lock lifts when your work lands. If the lock file is missing, names a different agent, or a plan already exists, the ticket is not yours — stop and do nothing.

## 2026-07-31T17:25:01.674Z · agent · cli

The work is complete: the plan is committed and the lock is released in the same commit (`2ae1493a`). The session is finished — marking ready for merge.

```show-markdown
\# Plan written: #1334 autonomous quick-wins

**Verdict: Effort 3, Uncertainty 4** — `tickets/2026-07-28_goal-autonomous-quick-wins.plan.md`

Most of #1334 turned out to be already built: `update-tickets` already leads the routine rotation, the spike & plan fan-out (#1327) writes plans, and the queue drain auto-merges with `(fix #N)` in the PR title. What remains:

1. **The plan→queue bridge is unwritten** — nothing reads a plan's `Effort:`/`Uncertainty:` headers. The deterministic promoter was deliberately removed (#1420: brillout chose "tell the agent what to do"), but neither `spike_and_plan.md` nor `triage_quick.md` was actually taught to do it. Proposed: the spike agent self-queues its own consensual quick-win (`Effort ≤ 2`, `Uncertainty ≤ 1`) in the same commit as the plan, and triage-quick trusts plan headers when a plan exists.
2. **Model floor for merge-armed runs** — Haiku is 0/5 on `setReadyForMerge()` (evidence table on the #1334 thread, acked by brillout), so auto-merge always ends withheld today. Proposed: `MERGE_ARMED_MODEL_FLOOR = 'sonnet'` where `autoMerge: true` jobs start, plus recording the selected model on the run meta.
3. Hygiene: tick the already-built `(fix #N)` checkbox on the issue, fix the stale F26 rotation description in BUSINESS_LOGIC.md.

Steps 1–3 are one small PR; the acceptance test is a throwaway trivial ticket flowing import → plan → self-queued → auto-merged with zero human touches.
```

```ready-for-merge
```

**Summary:** I spiked and planned `tickets/2026-07-28_goal-autonomous-quick-wins.md` (#1334), the only ticket in my scope — the lock named my agent and no plan existed, so the claim was valid.

The key finding: the ticket is much closer to done than it reads. The "Update tickets from GH in the routine" requirement shipped already (it's the first rotation job, with a doc comment citing #1334), the spike/plan fan-out and auto-merging drain both exist, and even the `(fix #N)` squash-merge requirement appears built but unchecked on the issue. The two real gaps are: **(1)** the plan→queue bridge exists only in commit messages — when `planned-quick-wins.ts` was removed six commits ago, the queueing duty was verbally handed to the prompts, but no prompt was ever edited, so a finished quick-win plan goes nowhere; and **(2)** the model-tier blocker documented on the issue thread — Haiku never signals ready-for-merge, so merge-armed runs always end withheld as draft PRs.

The plan (Effort 3, Uncertainty 4) proposes two prompt edits (spike agent self-queues consensual quick-wins at `Effort ≤ 2`/`Uncertainty ≤ 1`; triage-quick trusts plan headers), a Sonnet model floor for `autoMerge` runs in `daemon-services.ts`, and doc/issue hygiene — all one small PR, with an end-to-end dogfood run as the acceptance test. Committed as `2ae1493a` on `the-framework/plan-autonomous-quick-wins`, with the lock file deleted in the same commit.
