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
4 changes: 4 additions & 0 deletions docs/BACKLOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -321,9 +321,13 @@ are closed (status: closed in frontmatter)._
- [ ] **[B-0088.5](backlog/P2/B-0088.5-audit-backlog-index-integrity-lint-advisory-status-riven-2026-05-11.md)** Audit backlog-index-integrity.yml for advisory-vs-required parity (B-0088 sibling)
- [ ] **[B-0089](backlog/P2/B-0089-veridicality-rainbow-table-canonicalization-research-and-graduation-aaron-ani-amara-2026-04-28.md)** Veridicality rainbow-table canonicalization — research + ship semantic + scoring layers; drop "bullshit detector" as a forward-going name
- [ ] **[B-0090](backlog/P2/B-0090-cadenced-lost-substrate-recovery-audit-aaron-2026-04-28.md)** Cadenced lost-substrate recovery audit (worktrees + orphan branches + closed-not-merged PRs + draft PRs aged > N days)
- [ ] **[B-0090.1](backlog/P2/B-0090.1-lost-substrate-3-bucket-classification-taxonomy.md)** Lost-substrate 3-bucket classification taxonomy (ALREADY-COVERED / NEEDS-RECOVERY / OBSOLETE)
- [ ] **[B-0090.1](backlog/P2/B-0090.1-ts-worktree-survey-atomic-riven-2026-05-10.md)** TS survey tool for locked worktrees (git worktree list + 3-bucket classify)
- [ ] **[B-0090.2](backlog/P2/B-0090.2-ts-orphan-branch-survey-atomic-riven-2026-05-10.md)** TS survey tool for orphan branches (unmerged + no-PR)
- [ ] **[B-0090.2](backlog/P2/B-0090.2-worktree-branch-delta-audit.md)** Worktree-branch delta audit (locked .claude/worktrees/ only, last-N-days)
- [ ] **[B-0090.3](backlog/P2/B-0090.3-closed-not-merged-pr-scan.md)** Closed-not-merged PRs + orphan branches + aged-draft-PRs scan (AceHack + LFG)
- [ ] **[B-0090.3](backlog/P2/B-0090.3-ts-closed-pr-survey-atomic-riven-2026-05-10.md)** TS survey for closed-not-merged PRs aged + content diff
- [ ] **[B-0090.4](backlog/P2/B-0090.4-cadence-and-hygiene-history-hook.md)** Cadence hook + hygiene-history append for lost-substrate audits (weekly/monthly)
- [ ] **[B-0090.4](backlog/P2/B-0090.4-ts-draft-pr-aged-survey-atomic-riven-2026-05-10.md)** TS survey for draft PRs aged > N days + content snapshot
- [x] **[B-0091](backlog/P2/B-0091-audit-and-rename-servicetitan-references-in-live-docs-aaron-2026-04-28.md)** Audit + rename ServiceTitan references in live (non-historical) repo surfaces — use generic "external UI demo" / "external CRM API demo" forward-going
- [ ] **[B-0092](backlog/P2/B-0092-public-company-contributor-compliance-doc-and-cadenced-trajectories-aaron-2026-04-28.md)** Public-company contributor compliance — doc + cadenced trajectories (audit-on-commit, weekly/monthly compliance review, on-PR audit, on-onboarding briefing, drift retrospective)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@
---
id: B-0090
priority: P2
status: open
status: decomposed
Comment thread
AceHack marked this conversation as resolved.
title: Cadenced lost-substrate recovery audit (worktrees + orphan branches + closed-not-merged PRs + draft PRs aged > N days)
tier: factory-hygiene
effort: M
effort: M (now 4x S children)
Comment thread
AceHack marked this conversation as resolved.
ask: maintainer Aaron 2026-04-28T23ish *"probably a trajectory this is recovery work we should do forever on a cadence these kind of lost things could always build up"*
created: 2026-04-28
last_updated: 2026-05-02
last_updated: 2026-05-11
depends_on: []
composes_with:
- B-0060
tags: [aaron-2026-04-28, factory-hygiene, lost-substrate, cadenced-audit, content-loss-surface, metric-ladder]
- B-0090.1
- B-0090.2
- B-0090.3
- B-0090.4
tags: [aaron-2026-04-28, factory-hygiene, lost-substrate, cadenced-audit, content-loss-surface, metric-ladder, decomposed]
type: friction-reducer
---

Expand All @@ -26,6 +30,21 @@ worktrees + the in-flight 19 LOST GitHub branches task (#264):
> forever on a cadence these kind of lost things could always
> build up."*

## 2026-05-11 Re-decomposition (Riven, one bounded step)

B-0090 was too broad (M effort, trajectory-shaped, 4 surfaces + cadence + metric ladder). Per "always re-decompose during build — assume mistakes" rule, split into 4 smallest dependency-ordered atomic S-effort child rows:

**Dependency order (buildable now):**

1. **B-0090.1** — 3-bucket taxonomy (root, no deps) — defines ALREADY-COVERED / NEEDS-RECOVERY / OBSOLETE with decision tree.
2. **B-0090.2** — worktree delta audit (depends 0090.1) — TS scanner for locked worktrees only.
3. **B-0090.3** — closed-not-merged / orphan / aged-draft PR scan (depends 0090.1) — GitHub surface.
4. **B-0090.4** — cadence hook + hygiene-history append (depends 0090.1+2+3) — wiring only.

Re-decomp assumption checked: taxonomy split first avoids label drift; scanners are pure classification (no recovery logic); cadence is hook, not full scheduler. All children are now claimable as single bounded slices. Parent effort reduced to "orchestration of children".

Focused checks run in worktree (see PR body).

## Why P2

Lost substrate accumulates as a side effect of velocity. Without
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
---
id: B-0090.1
Comment thread
AceHack marked this conversation as resolved.
priority: P2
status: open
title: Lost-substrate 3-bucket classification taxonomy (ALREADY-COVERED / NEEDS-RECOVERY / OBSOLETE)
tier: factory-hygiene
effort: S
depends_on: []
composes_with: [B-0090]
tags: [b0090-decomp, taxonomy, classification, lost-substrate]
type: friction-reducer
Comment thread
AceHack marked this conversation as resolved.
---

# B-0090.1 — Lost-substrate 3-bucket classification taxonomy

## Why this child exists

B-0090's Step 3 classification is the load-bearing primitive. Without a single, versioned, citable definition of the three buckets, every cycle reinvents the labels and drift appears. This row makes the taxonomy durable substrate before any scanner or cadence is built.

## Atomic scope (S effort)

- Single source of truth (new file or section in GLOSSARY.md or docs/DRIFT-TAXONOMY.md extension).
- Exact bucket names + one-sentence operational definition + decision tree (1-2 if/else per bucket).
- Example from 2026-04-28 audit for each bucket.
- No tooling, no cadence, no scanners.

## Dependency note

This is the first root. All other B-0090.* children depend on it for the shared vocabulary. Re-decomposition assumption: taxonomy may need a 4th bucket later (e.g. PARTIALLY-COVERED); keep it three for v1.

## Acceptance

- [ ] Taxonomy committed as durable file with §33 header.
- [ ] Decision tree fits on <20 lines.
- [ ] One concrete example per bucket from prior audit.
- [ ] No implementation beyond the definition.

## Evidence

- Parent: docs/backlog/P2/B-0090-cadenced-lost-substrate-recovery-audit-aaron-2026-04-28.md
- Worked example memory: memory/feedback_lost_substrate_recovery_cadenced_trajectory_aaron_2026_04_28.md

Co-Authored-By: Grok <noreply@x.ai>
46 changes: 46 additions & 0 deletions docs/backlog/P2/B-0090.2-worktree-branch-delta-audit.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
id: B-0090.2
priority: P2
status: open
title: Worktree-branch delta audit (locked .claude/worktrees/ only, last-N-days)
tier: factory-hygiene
effort: S
depends_on: [B-0090.1]
composes_with: [B-0090]
tags: [b0090-decomp, worktree, delta-scan, lost-substrate]
type: friction-reducer
Comment thread
AceHack marked this conversation as resolved.
---

# B-0090.2 — Worktree-branch delta audit

## Why this child exists

The 57 locked worktrees are the highest-volume surface. B-0090.1 taxonomy now exists; this row is the minimal delta scanner that classifies only worktrees changed since last audit (not full 57 every time). Keeps cost S per cycle.

## Atomic scope (S effort)

- TS script (tools/hygiene/audit-worktree-delta.ts) or equivalent that:
- Lists locked worktree branches.
- Diffs against last-audit marker (file or git note).
- Applies B-0090.1 3-bucket classification.
- Outputs markdown table + count of NEEDS-RECOVERY.
- No auto-prune, no recovery PRs, no cadence wiring.
- Focused check: run on current .claude/worktrees/ and report bucket counts (include in PR body of this decomp).
Comment thread
AceHack marked this conversation as resolved.

## Dependency note

Depends on B-0090.1 for bucket names. Re-decomp assumption: "delta" may be over-constrained if no marker exists yet; first cycle may be full scan (still S).

## Acceptance

- [ ] Script passes dotnet build gate + focused lint.
- [ ] Output exactly matches 3-bucket taxonomy.
- [ ] No writes to root checkout (worktree only).
- [ ] One-page runbook in the script header.

## Evidence

- Parent B-0090
- B-0090.1 taxonomy

Co-Authored-By: Grok <noreply@x.ai>
44 changes: 44 additions & 0 deletions docs/backlog/P2/B-0090.3-closed-not-merged-pr-scan.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
id: B-0090.3
priority: P2
status: open
title: Closed-not-merged PRs + orphan branches + aged-draft-PRs scan (AceHack + LFG)
tier: factory-hygiene
effort: S
depends_on: [B-0090.1]
composes_with: [B-0090]
tags: [b0090-decomp, pr-state, orphan, draft-pr, lost-substrate]
type: friction-reducer
Comment thread
AceHack marked this conversation as resolved.
---

# B-0090.3 — Closed-not-merged PRs + orphan + aged-draft scan

## Why this child exists

Task #264 tracked 14 closed-not-merged + 5 orphans. B-0090.1 taxonomy now defined; this is the GitHub-surface scanner that produces the same 3-bucket output for PRs and branches. Monthly cadence surface.

## Atomic scope (S effort)

- TS wrapper around gh api + git ls-remote (or existing substrate-discovery tool).
- Filters: closed-not-merged (any age), orphan (no remote tracking), draft PRs >14 days.
- Classify each with B-0090.1 buckets.
- Emit hygiene-history row + summary counts only.
- No auto-close, no recovery.

## Dependency note

Depends on taxonomy. Re-decomp assumption: "aged > N days" N=14 may be wrong; make N configurable in the row (default 14) so future cycles can tune without re-decomp.

## Acceptance

- [ ] Uses only existing gh + git surfaces (no new auth).
- [ ] Output table matches taxonomy.
- [ ] Focused check run: current counts of each category on LFG (include in decomp PR body).
Comment thread
AceHack marked this conversation as resolved.
- [ ] SLOC < 150.

## Evidence

- Parent B-0090 + task #264
- B-0090.1

Co-Authored-By: Grok <noreply@x.ai>
42 changes: 42 additions & 0 deletions docs/backlog/P2/B-0090.4-cadence-and-hygiene-history-hook.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
id: B-0090.4
priority: P2
status: open
title: Cadence hook + hygiene-history append for lost-substrate audits (weekly/monthly)
tier: factory-hygiene
effort: S
depends_on: [B-0090.1, B-0090.2, B-0090.3]
composes_with: [B-0090]
tags: [b0090-decomp, cadence, hygiene-history, autonomous]
type: friction-reducer
Comment thread
AceHack marked this conversation as resolved.
---

# B-0090.4 — Cadence hook + hygiene-history append

## Why this child exists

B-0090 acceptance requires "cadence encoded as routine". With scanners (0090.2/3) and taxonomy (0090.1) defined, this is the minimal wiring that makes the audit fire on schedule and record each cycle in docs/hygiene-history/ without expanding AUTONOMOUS-LOOP core.

## Atomic scope (S effort)

- Add entry to existing cadence surface (docs/AUTONOMOUS-LOOP.md or hygiene tick) that invokes the two scanners.
- Append one row per cycle to hygiene-history (timestamp + bucket counts + link to claim).
- No new cron, no runner change, no full implementation of recovery.

## Dependency note

Depends on 0090.1 + scanners. Re-decomp assumption: "weekly vs monthly" split may be premature; start with single "cadenced" hook and let first three cycles calibrate the split. Smallest atomic = the hook + history append only.

## Acceptance

- [ ] One new row in hygiene-history format.
- [ ] Hook is read-only invocation (no mutation in root).
- [ ] Documents the N-day tuning point for future.
- [ ] Passes build gate (doc-only change).
Comment thread
AceHack marked this conversation as resolved.

## Evidence

- Parent B-0090
- B-0090.1, .2, .3

Co-Authored-By: Grok <noreply@x.ai>
Loading