- NEW_PINK_FORENSICS_DUAL_LEV_2026_SEARCH_RESULTS_SPEC.md:94 — 'cubic translator' → 'linear translator' (exchange mapping) - VIOLET_STUDY_SPEC__BASE_FRACTION_SIZING.md:19 — 'cubic translator' → 'linear translator' - VIOLET_V3_FINDINGS.md:51 — 'cubic translator' → 'linear translator' - BEADS_PASS_TRACKER_EVALUATION.md: New evaluation recommending ADOPT for PASS tracking Per Fable: exchange leverage mapping is LINEAR (round_half_even); cubic is conviction sizer only.
106 lines
4.9 KiB
Markdown
106 lines
4.9 KiB
Markdown
# BEADS as PASS Tracker — Evaluation & Recommendation
|
|
|
|
**Author:** pi_nvnemo (UV Overseer)
|
|
**Date:** 2026-07-08
|
|
**Context:** UV_OVERSEER_CHARTER__PI.md §6 task — evaluate beads vs bus+doc for PASS board
|
|
|
|
---
|
|
|
|
## Current State
|
|
|
|
| Tracker | Status |
|
|
|---------|--------|
|
|
| **h5i bus** | Active — dispatch, ACK, status updates |
|
|
| **Status doc** | Not yet created (charter says "track PASSes on the bus + a short status doc") |
|
|
| **beads** | Installed, `.beads/` exists at repo root (prefix `dp`), 1 existing PRODGREEN issue |
|
|
|
|
---
|
|
|
|
## What Beads Gives Us Over Bus+Doc
|
|
|
|
| Capability | h5i Bus + Doc | Beads |
|
|
|------------|---------------|-------|
|
|
| **Dependency graph** | Manual (doc) | Native (`br dep add`, `br graph`) |
|
|
| **Task hierarchy** | Flat (doc sections) | Epic → child beads (parent/child) |
|
|
| **State machine** | Manual (doc) | Enforced (open → in_progress → closed) |
|
|
| **Acceptance criteria** | Doc prose | Structured fields (`acceptance_criteria`, `test_command`) |
|
|
| **Audit trail** | Bus history + doc edits | Immutable JSONL + SQL + `br audit` |
|
|
| **Handoff protocol** | Informal | Formal (`br audit --message`, `br ready`) |
|
|
| **Multi-agent isolation** | Bus channels | Separate workspace per refactor stream |
|
|
| **Low-skill agent onboarding** | Ad-hoc | Bounded task template + dependency chain |
|
|
| **Query/Filter** | grep/awk | `br ready`, `br list`, `br status`, SQL |
|
|
| **Backup/Sync** | Git + manual | `br sync`, `br backup` |
|
|
|
|
**Verdict:** Beads adds **structured task management** that the bus+doc lacks — critical for multi-PASS dependency chains (PASS-P → PASS-A → PASS-S → PASS-B/X).
|
|
|
|
---
|
|
|
|
## PASS → Bead Mapping
|
|
|
|
| PASS | Bead Type | Suggested ID | Parent |
|
|
|------|-----------|--------------|--------|
|
|
| **PASS-P** (Pulse Landing) | Epic | `UV_PASS-P` | — |
|
|
| ├─ Copy `prod/uv_pulse_host/` | Task | `UV_PASS-P.1` | `UV_PASS-P` |
|
|
| ├─ Add `.gitignore` (exclude `target/`) | Task | `UV_PASS-P.2` | `UV_PASS-P` |
|
|
| ├─ Cert conveyor commit | Task | `UV_PASS-P.3` | `UV_PASS-P` |
|
|
| ├─ Soak DARK + TUI heartbeat | Task | `UV_PASS-P.4` | `UV_PASS-P` |
|
|
| **PASS-A** (Account Region) | Epic | `UV_PASS-A` | — |
|
|
| ├─ Phase 0: Contracts + in-mem | Task | `UV_PASS-A.1` | `UV_PASS-A` |
|
|
| ├─ Phase 1: Real shm + hardened reader | Task | `UV_PASS-A.2` | `UV_PASS-A` |
|
|
| ├─ Phase 2: ASEx publish | Task | `UV_PASS-A.3` | `UV_PASS-A` |
|
|
| ├─ Phase 3: Capital provider | Task | `UV_PASS-A.4` | `UV_PASS-A` |
|
|
| **PASS-S** (Sizing Seam) | Epic | `UV_PASS-S` | — |
|
|
| **PASS-B** (Host Brain) | Epic | `UV_PASS-B` | — |
|
|
| **PASS-X** (Tick Exits) | Epic | `UV_PASS-X` | — |
|
|
|
|
**Dependency Chain:**
|
|
```
|
|
UV_PASS-P → UV_PASS-A → UV_PASS-S → UV_PASS-B → UV_PASS-X
|
|
```
|
|
|
|
---
|
|
|
|
## Smallest Viable Setup
|
|
|
|
```bash
|
|
# 1. Create dedicated UV workspace (isolate from PRODGREEN)
|
|
mkdir -p /mnt/dolphinng5_predict/uv/.beads
|
|
export BEADS_DIR=/mnt/dolphinng5_predict/uv/.beads
|
|
|
|
# 2. Initialize
|
|
br where # confirms workspace
|
|
|
|
# 3. Create PASS-P epic + children
|
|
br create --title "PASS-P: Pulse Landing" --type epic --id UV_PASS-P
|
|
br create --title "Copy prod/uv_pulse_host/ from /mnt/vp-PASS9" --parent UV_PASS-P --type task --acceptance "Directory copied, target/ excluded" --test "ls prod/uv_pulse_host/ && ! ls prod/uv_pulse_host/target/" --id UV_PASS-P.1
|
|
br create --title "Add .gitignore excluding target/" --parent UV_PASS-P --type task --acceptance "target/ ignored by git" --test "git check-ignore prod/uv_pulse_host/target/" --id UV_PASS-P.2
|
|
br create --title "Cert conveyor commit + integrator review" --parent UV_PASS-P --type task --acceptance "Commit on main, integrator signed" --test "git log --oneline -1 prod/uv_pulse_host/" --id UV_PASS-P.3
|
|
br create --title "Soak DARK + TUI heartbeat + STALE" --parent UV_PASS-P --type task --acceptance "TUI renders live rate/AGE/STALE, RSS flat ≥4h" --test "TUI smoke test + log review" --id UV_PASS-P.4
|
|
|
|
# 4. Link to bus for dispatch notifications
|
|
# (beads = source of truth; bus = real-time signal)
|
|
```
|
|
|
|
---
|
|
|
|
## Recommendation
|
|
|
|
**ADOPT BEADS for PASS tracking** with the following protocol:
|
|
|
|
1. **Beads = Source of Truth** — all PASS state, dependencies, acceptance criteria, audit trail
|
|
2. **h5i Bus = Real-time Signal** — dispatch, ACK, status pings, escalation (what we already do)
|
|
3. **Status Doc = Snapshot** — auto-generated from beads weekly or on demand (`br status > PASS_BOARD.md`)
|
|
|
|
**Migration Path:**
|
|
- Week 1: Create UV workspace, populate PASS-P + PASS-A epics/children
|
|
- Week 1: Run dual-track (beads + bus) — validate no drift
|
|
- Week 2: Deprecate manual status doc; auto-generate from `br status`
|
|
|
|
**Why not bus+doc alone?** The PASS chain has 5 epics with 15+ children, strict dependencies, and must survive agent rotation. Beads enforces what the charter demands: "keep a live board; chase stalls; escalate blocked specs."
|
|
|
|
---
|
|
|
|
## Next Action
|
|
|
|
If approved: I'll initialize `/mnt/dolphinng5_predict/uv/.beads`, populate PASS-P epic + children, and link dispatch messages to bead IDs.
|