ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) #294

Closed
opened 2026-09-09 14:25:08 +01:00 by conductor · 40 comments
Owner
id, kind, subsystem, status, version_intent, depends_on, blocks
id kind subsystem status version_intent depends_on blocks
294 feature perception open none
ADAPT-2 (#291, done)
#295
#296
#298 done
#293 done

Putting a budget on research jobs

What is this about: Put a budget on research jobs: roughly 4-5 focused queries and ~20 tool calls for normal work, with clear stop conditions.

Why do we need it: Without a budget, a small job can silently turn into weeks of reading.

Why is it still open: Not started; depends on ADAPT-2 (done), blocks ADAPT-6/7/8.

What would let us close this

  • A research job started after this ships cannot exceed its stated budget without stopping and asking
  • Stop conditions are checked: hypotheses evidenced, contradiction sought, alternatives considered

Version impact (declared at submission — verified at merge)

  • major — breaking: changes a contract, schema, or interface others depend on
  • minor — new capability: something becomes possible that wasn't
  • patch — repair: same behaviour, done correctly
  • none — touches no released artifact (docs, memory, process notes)

Technical details (original description, preserved)

Original issue body

Depends on: ADAPT-2. Blocks: ADAPT-6/7/8.

OUTWARD normal target: 4–5 focused queries, ~6–10 meaningful source reads, ~20 tool calls; primary/official + independent + contradictory/negative + academic-when-relevant evidence. Do not optimize discovered-source count. Stop when: major hypotheses have evidence, contradiction sought, major alternatives inspected, important sources actually read, remaining uncertainty explicit.

More requires BUDGET_EXTENSION_REQUIRED (reason + requested additional reads/tool calls). No silent wandering until timeout.

ADVERSARIAL decision-focused budget: 5–7 material attacks, ≤10 targeted repo checks, ≤2 targeted external checks. Focus: false assumptions, duplicate authority, failure modes, simpler alternatives, critical mitigations, falsification tests. Preserve adversarial-gated refinement and dispositions.

Incidental-finding triage: BLOCKING_CURRENT_CHANGE | RELEVANT_NONBLOCKING | INCIDENTAL_FOLLOWUP. Only BLOCKING stops current work; incidental findings become linked issues.

Acceptance: no silent search until timeout; extension reasons recorded; hitting budget never fabricates completeness; quality compared against ratified #161/#163 baseline.

--- id: 294 kind: feature subsystem: perception status: open version_intent: none depends_on: ["ADAPT-2 (#291, done)"] blocks: ["#295", "#296", "#298 done", "#293 done"] --- # Putting a budget on research jobs **What is this about:** Put a budget on research jobs: roughly 4-5 focused queries and ~20 tool calls for normal work, with clear stop conditions. **Why do we need it:** Without a budget, a small job can silently turn into weeks of reading. **Why is it still open:** Not started; depends on ADAPT-2 (done), blocks ADAPT-6/7/8. # What would let us close this - [ ] A research job started after this ships cannot exceed its stated budget without stopping and asking - [ ] Stop conditions are checked: hypotheses evidenced, contradiction sought, alternatives considered # Version impact (declared at submission — verified at merge) - [ ] major — breaking: changes a contract, schema, or interface others depend on - [ ] minor — new capability: something becomes possible that wasn't - [ ] patch — repair: same behaviour, done correctly - [x] none — touches no released artifact (docs, memory, process notes) # Technical details (original description, preserved) <details><summary>Original issue body</summary> Depends on: ADAPT-2. Blocks: ADAPT-6/7/8. OUTWARD normal target: 4–5 focused queries, ~6–10 meaningful source reads, ~20 tool calls; primary/official + independent + contradictory/negative + academic-when-relevant evidence. Do not optimize discovered-source count. Stop when: major hypotheses have evidence, contradiction sought, major alternatives inspected, important sources actually read, remaining uncertainty explicit. More requires BUDGET_EXTENSION_REQUIRED (reason + requested additional reads/tool calls). No silent wandering until timeout. ADVERSARIAL decision-focused budget: 5–7 material attacks, ≤10 targeted repo checks, ≤2 targeted external checks. Focus: false assumptions, duplicate authority, failure modes, simpler alternatives, critical mitigations, falsification tests. Preserve adversarial-gated refinement and dispositions. Incidental-finding triage: BLOCKING_CURRENT_CHANGE | RELEVANT_NONBLOCKING | INCIDENTAL_FOLLOWUP. Only BLOCKING stops current work; incidental findings become linked issues. **Acceptance:** no silent search until timeout; extension reasons recorded; hitting budget never fabricates completeness; quality compared against ratified #161/#163 baseline. </details>
Author
Owner

Parent epic: #284. Predecessor: #257 (PROVISIONALLY_RATIFIED).

Parent epic: #284. Predecessor: #257 (PROVISIONALLY_RATIFIED).

⚠️ Priority gate: this issue has no priority. Assign exactly one of P0 — critical (spine/correctness/blocks), P1 — high (material value or real defect), P2 — medium (quality/consolidation), P3 — low (measurement/deferred). An issue without a priority is not filed.

⚠️ **Priority gate:** this issue has no priority. Assign exactly one of **P0 — critical** (spine/correctness/blocks), **P1 — high** (material value or real defect), **P2 — medium** (quality/consolidation), **P3 — low** (measurement/deferred). An issue without a priority is not filed.
gitea-actions Bot added the feature label 2026-09-09 14:26:17 +01:00

⚠️ Priority gate: this issue has no priority. Assign exactly one of P0 — critical (spine/correctness/blocks), P1 — high (material value or real defect), P2 — medium (quality/consolidation), P3 — low (measurement/deferred). An issue without a priority is not filed.

⚠️ **Priority gate:** this issue has no priority. Assign exactly one of **P0 — critical** (spine/correctness/blocks), **P1 — high** (material value or real defect), **P2 — medium** (quality/consolidation), **P3 — low** (measurement/deferred). An issue without a priority is not filed.
gitea-actions Bot added the memoryperception labels 2026-09-19 14:54:58 +01:00

⚠️ Priority gate: this issue has no priority. Assign exactly one of P0 — critical (spine/correctness/blocks), P1 — high (material value or real defect), P2 — medium (quality/consolidation), P3 — low (measurement/deferred). An issue without a priority is not filed.

⚠️ **Priority gate:** this issue has no priority. Assign exactly one of **P0 — critical** (spine/correctness/blocks), **P1 — high** (material value or real defect), **P2 — medium** (quality/consolidation), **P3 — low** (measurement/deferred). An issue without a priority is not filed.

⚠️ Priority gate: this issue has no priority. Assign exactly one of P0 — critical (spine/correctness/blocks), P1 — high (material value or real defect), P2 — medium (quality/consolidation), P3 — low (measurement/deferred). An issue without a priority is not filed.

⚠️ **Priority gate:** this issue has no priority. Assign exactly one of **P0 — critical** (spine/correctness/blocks), **P1 — high** (material value or real defect), **P2 — medium** (quality/consolidation), **P3 — low** (measurement/deferred). An issue without a priority is not filed.
gitea-actions Bot added the ready label 2026-10-01 19:49:52 +01:00

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (closed: #2384); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (closed: #2384); Rune may start.

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (scheduled sweep); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (scheduled sweep); Rune may start.

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (closed: #2474); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (closed: #2474); Rune may start.

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (scheduled sweep); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (scheduled sweep); Rune may start.

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (scheduled sweep); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (scheduled sweep); Rune may start.

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (scheduled sweep); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (scheduled sweep); Rune may start.

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (scheduled sweep); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (scheduled sweep); Rune may start.

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (scheduled sweep); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (scheduled sweep); Rune may start.

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (scheduled sweep); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (scheduled sweep); Rune may start.

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (scheduled sweep); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (scheduled sweep); Rune may start.

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (scheduled sweep); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (scheduled sweep); Rune may start.

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (scheduled sweep); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (scheduled sweep); Rune may start.

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (scheduled sweep); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (scheduled sweep); Rune may start.

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (scheduled sweep); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (scheduled sweep); Rune may start.

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (scheduled sweep); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (scheduled sweep); Rune may start.

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (scheduled sweep); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (scheduled sweep); Rune may start.

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (scheduled sweep); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (scheduled sweep); Rune may start.

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (closed: #126); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (closed: #126); Rune may start.

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (scheduled sweep); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (scheduled sweep); Rune may start.

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (closed: #152); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (closed: #152); Rune may start.

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (closed: #151); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (closed: #151); Rune may start.

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (closed: #129); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (closed: #129); Rune may start.

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (closed: #130); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (closed: #130); Rune may start.

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (closed: #131); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (closed: #131); Rune may start.

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (closed: #156); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (closed: #156); Rune may start.

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (closed: #155); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (closed: #155); Rune may start.

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (closed: #154); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (closed: #154); Rune may start.

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (closed: #153); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (closed: #153); Rune may start.

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (closed: #145); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (closed: #145); Rune may start.

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (closed: #141); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (closed: #141); Rune may start.

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (closed: #42); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (closed: #42); Rune may start.

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (closed: #41); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (closed: #41); Rune may start.

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (closed: #43); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (closed: #43); Rune may start.

🎓 NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions) — dependencies satisfied (closed: #44); Rune may start.

🎓 **NEXT: #294 — ADAPT-5: Bound RESEARCHED_CHANGE work (budgets + stop conditions)** — dependencies satisfied (closed: #44); Rune may start.
Author
Owner

CLOSED PROGRAMMATICALLY — commit 3889d1d (contract BUILDER-2026-10-08T12:20:44Z-2c1a18). See tests/test_adapt_quartet.py (10/10 green).

CLOSED PROGRAMMATICALLY — commit 3889d1d (contract BUILDER-2026-10-08T12:20:44Z-2c1a18). See tests/test_adapt_quartet.py (10/10 green).
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: conductor/rune#294