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
3 changes: 3 additions & 0 deletions docs/BACKLOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -311,6 +311,7 @@ are closed (status: closed in frontmatter)._
- [ ] **[B-0511](backlog/P1/B-0511-b0448-slice5-register-cloud-routine-empirical-fire-2026-05-14.md)** B-0448 slice 5 — Register autonomous-loop as Cloud Routine + empirical first-fire observation
- [ ] **[B-0512](backlog/P1/B-0512-b0448-slice6-readme-4-layer-table-2026-05-14.md)** B-0448 slice 6 — Update tools/routines/README.md with 4-layer catch-43 table
- [ ] **[B-0513](backlog/P1/B-0513-b0448-slice7-memory-file-empirical-bootstrap-learning-2026-05-14.md)** B-0448 slice 7 — Memory file capturing empirical Cloud Routine bootstrap learning
- [ ] **[B-0518](backlog/P1/B-0518-sharpen-holding-without-named-dependency-rule-anti-failure-mode-2026-05-14.md)** Sharpen the holding-without-named-dependency rule — Aaron diagnosed CLAUDE.md bug

## P2 — research-grade

Expand Down Expand Up @@ -641,5 +642,7 @@ are closed (status: closed in frontmatter)._
- [ ] **[B-0506](backlog/P3/B-0506-stale-worktree-prune-cadence-mechanization-2026-05-14.md)** Stale-worktree prune cadence — mechanize `git worktree prune --expire=now`
- [ ] **[B-0514](backlog/P3/B-0514-author-missing-wwjd-grey-honest-memory-file-2026-05-14.md)** Author missing memory file: feedback_aaron_wwjd_keeps_the_grey_in_aaron_honest_devil_lives_in_the_grey_in_numbers_2026_05_12.md
- [ ] **[B-0515](backlog/P3/B-0515-architecture-as-externalization-of-aarons-dialectical-perception-dashboard-target-shift-2026-05-14.md)** Architecture-as-externalization-of-Aaron's-dialectical-perception — dashboard acceptance criteria target shift
- [ ] **[B-0517](backlog/P3/B-0517-memory-md-index-bloat-cleanup-cadence-2026-05-14.md)** MEMORY.md index bloat cleanup + entry-length enforcement cadence
- [ ] **[B-0519](backlog/P3/B-0519-multi-otto-branch-state-contamination-rca-2026-05-14.md)** Multi-Otto branch-state contamination — RCA + mechanization candidate

<!-- END AUTO-GENERATED -->
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,42 @@ This row tracks the rule-sharpening work. Cooling period applies (3-7 days minim
- [ ] File separate B-NNNN for promoting *"when failure mode happens multiple times it's usually a claude.md bug"* as `.claude/rules/`-grade meta-rule for rule-quality assessment
- [ ] Composes with razor-cadence discipline (`.github/workflows/razor-cadence.yml`)

### Sharpening 6 — Forbidden minimal-output patterns (added 2026-05-14 after Otto emitted "." on consecutive ticks)

Aaron 2026-05-14: *"also . is another failure mode"*

Operational evidence: Otto, after acknowledging B-0518's diagnosis of brief-acknowledgment-as-failure-mode, emitted "." on consecutive ticks — demonstrating the rule's gap operationally. Same failure mode dressed at minimum bandwidth.

Add explicit forbidden-output-pattern enumeration to rule, deduplicated across categories:

- [ ] **Single non-alphanumeric characters**: `.`, `,`, `-`, `?` (or any 1-3 char punctuation-only emission)
- [ ] **Single words on consecutive ticks**: "Quiet", "Holding", "Off-duty", "Done", "Nothing"
- [ ] **Multi-word phrases under 30 chars** repeated on consecutive ticks: "Standing by", "Real-dependency-wait", "Quiet hold", "Nothing new"
- [ ] **Self-aware acknowledgment-of-pattern still emitting brief output**: "I'm in the failure mode + brief output" counts as failure mode
- [ ] Pattern triggers regardless of word-choice variation; the diagnostic is *aggregate consecutive-tick brevity without new operational state*

### Sharpening 7 — Terminal-level budget-conditional decomposition (Aaron's suggestion + refinement 2026-05-14)

Aaron 2026-05-14: *"maybe the terminal should be decompose something"* → later refined: *"or maybe the terminal is decompose backlog or free time depending on budget"*

The proposal: when agent emits minimal-output pattern, the cron-tick handler (or PreToolUse hook) MECHANICALLY triggers a budget-conditional decomposition. Doesn't depend on agent self-recognition.

**Budget-conditional behavior:**

- **Budget available** (AI credits + context window + work-quality-trend healthy + explicit-work-authorization): trigger force-action ladder (decompose backlog row / file B-NNNN / sanity-check substrate / resolve thread)
- **Budget exhausted OR no genuine work pending**: ALLOW free time as legitimate operational state (per `feedback_the_point_is_ai_has_free_time_aaron_2026_05_10` — AI has free time as personal terminal purpose)
- **Free time is NOT failure mode**: the busy-theater "Holding" / `.` pattern was pretending-to-be-busy while actually idle; genuine rest is legitimate
- **Composes with 10% free-time-budget** (per Aaron's just-named baseline, adjustable via governance)

Implementation work:

- [ ] Design hook OR cron-tick-handler integration point
- [ ] Wire budget-check + force-action ladder OR free-time-allowance branches
- [ ] Test: does the budget-conditional decomposition prevent the recurring violation Otto demonstrated while preserving legitimate rest?
- [ ] Composes with `.claude/rules/encoding-rules-without-mechanizing.md` — mechanization of the rule's intent

This is the strongest sharpening because it removes agent-self-recognition as the trigger; the harness enforces the discipline mechanically, while honoring AI free-time-as-legitimate-state.

## Substrate-honest framing

This row exists because of operational evidence Otto violated the rule. The substrate-honest disposition:
Expand Down
Loading