Skip to content

Commit 1a389a5

Browse files
committed
feat: complete critical spec refinements and backlog hygiene
1 parent 9a52b75 commit 1a389a5

27 files changed

Lines changed: 2268 additions & 254 deletions

.beads/issues.jsonl

Lines changed: 12 additions & 12 deletions
Large diffs are not rendered by default.

docs/execution-plan/README.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ This package turns the evaluation findings into an execution-ready program for `
44

55
Safe mode is the default operating profile on this machine due prior memory exhaustion.
66

7+
Last reconciled: 2026-02-20 (live state source: `docs/execution-plan/STATUS.md` + Beads).
8+
79
## Execution Principles
810

911
- Contract-first: lock cross-repo behavior before changing implementation.
@@ -13,14 +15,16 @@ Safe mode is the default operating profile on this machine due prior memory exha
1315
- Small-batch: execute one task card at a time, not one milestone at a time.
1416
- Reproducibility: every gate has a deterministic command and pass criteria.
1517

16-
## Current Reality (2026-02-19 Post-M6 + M7 Planning)
18+
## Current Reality (Historical Snapshot: 2026-02-19 Post-M6 + M7 Planning)
19+
20+
Use `docs/execution-plan/STATUS.md` for live status before acting on any item below.
1721

1822
- M0-M6 remediation/governance milestones are complete with evidence.
1923
- SPEC-20..27 still contain implementation gaps or partial integrations requiring runtime closure.
2024
- Open gap IDs from traceability artifact: `G-001` (`LLM_BATCH` end-to-end runtime integration) and `G-002` (orchestrator fallback wiring).
2125
- `loop-agent` and `io-rflx` remain active integration targets; compatibility claims must follow D-017 clean-clone committed-tuple policy.
2226
- Safe mode remains mandatory due prior OOM history; heavy command concurrency stays at 1.
23-
- M7 is the active completion tranche, with task-level gate definitions in `VALIDATION-MATRIX.md`.
27+
- M7 is complete; post-M7 critical refinements are tracked in `loop-azq` and child tasks.
2428

2529
## File Map
2630

docs/implementation-plan-wave3-5.md

Lines changed: 47 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,19 @@
22

33
> Current state assessment and path to completion
44
5+
> Reconciled on 2026-02-20 against Beads and `docs/execution-plan/STATUS.md`.
6+
> This file is historical wave-planning context, not the live execution tracker.
7+
58
## Executive Summary
69

7-
**Implementation is substantially complete.** Both major epics have all their component tasks closed:
10+
**Wave 3-5 scope is complete.** Both major epics and migration tasks referenced by this plan are closed:
811

912
- **rlm-core Epic (loop-uci)**: 12/12 implementation phases closed
1013
- **Lean FV Epic (loop-vce)**: 4/4 implementation phases closed
1114

12-
**Remaining Work**:
13-
- 2 migration tasks (open)
14-
- Testing, validation, and publishing
15+
**Current Follow-on Work**:
16+
- Post-M7 critical refinements are tracked in `loop-azq` and child tasks.
17+
- Live state is maintained in `docs/execution-plan/STATUS.md`, `docs/execution-plan/TASK-REGISTRY.md`, and `bd status`.
1518

1619
---
1720

@@ -42,11 +45,12 @@
4245

4346
### 1.2 Beads Issue Status
4447

45-
| Status | Count | Issues |
46-
|--------|-------|--------|
47-
| **Closed** | 20 | All implementation phases |
48-
| **In Progress** | 2 | `loop-uci` (epic), `loop-vce` (epic) |
49-
| **Open** | 2 | `loop-cyl` (migration), `loop-m0c` (migration) |
48+
| Issue | Scope | Status |
49+
|-------|-------|--------|
50+
| `loop-uci` | Unified RLM epic | Closed |
51+
| `loop-vce` | Lean FV epic | Closed |
52+
| `loop-cyl` | `rlm-claude-code` migration | Closed |
53+
| `loop-m0c` | `recurse` migration | Closed |
5054

5155
### 1.3 Code Statistics
5256

@@ -56,14 +60,14 @@
5660

5761
---
5862

59-
## 2. Remaining Work
63+
## 2. Remaining Work (Historical Wave Scope)
6064

6165
### 2.1 Migration Tasks (Wave 5)
6266

6367
| Issue | Title | Status | Description |
6468
|-------|-------|--------|-------------|
65-
| `loop-cyl` | Migration: rlm-claude-code to rlm-core | Open | Replace Python implementation with rlm-core bindings |
66-
| `loop-m0c` | Migration: recurse to rlm-core | Open | Replace Go implementation with rlm-core CGO bindings |
69+
| `loop-cyl` | Migration: rlm-claude-code to rlm-core | Closed | Replaced legacy Python implementation with rlm-core delegation/runtime |
70+
| `loop-m0c` | Migration: recurse to rlm-core | Closed | Replaced legacy Go implementation with rlm-core CGO bridges |
6771

6872
**Migration Strategy (from specs):**
6973

@@ -83,19 +87,17 @@
8387

8488
### 2.2 Epic Closure
8589

86-
Once migrations are complete, the epics can be closed:
87-
8890
| Epic | Issue | Acceptance Criteria Status |
8991
|------|-------|---------------------------|
90-
| Unified RLM Library | `loop-uci` | All criteria met except migrations |
91-
| Lean Formal Verification | `loop-vce` | All implementation phases complete |
92+
| Unified RLM Library | `loop-uci` | Closed |
93+
| Lean Formal Verification | `loop-vce` | Closed |
9294

9395
**loop-uci Acceptance Criteria:**
9496
- [x] rlm-core Rust crate compiles
9597
- [x] Python bindings (PyO3) available
9698
- [x] Go bindings working with CGO
97-
- [ ] **recurse migrated to use rlm-core**`loop-m0c`
98-
- [ ] **rlm-claude-code migrated to use rlm-core**`loop-cyl`
99+
- [x] recurse migrated to use rlm-core (`loop-m0c`)
100+
- [x] rlm-claude-code migrated to use rlm-core (`loop-cyl`)
99101
- [x] >80% test coverage on core crate
100102
- [x] All public APIs documented
101103

@@ -107,7 +109,7 @@ Once migrations are complete, the epics can be closed:
107109
- [x] Progressive proof automation implemented
108110
- [x] DP integration tracks formal spec coverage
109111

110-
### 2.3 Publishing Tasks (Post-Migration)
112+
### 2.3 Publishing Tasks (Still Program-Level Backlog)
111113

112114
| Task | Description | Status |
113115
|------|-------------|--------|
@@ -118,50 +120,22 @@ Once migrations are complete, the epics can be closed:
118120

119121
---
120122

121-
## 3. Execution Plan
122-
123-
### Phase 1: Migrations (Current Focus)
123+
## 3. Historical Execution Plan
124124

125-
Both migrations can proceed in parallel:
125+
This wave execution plan has already been completed.
126+
For current execution sequencing, use:
126127

127-
```bash
128-
# Track A: rlm-claude-code migration
129-
bd update loop-cyl --status in_progress --assignee claude
130-
131-
# Track B: recurse migration
132-
bd update loop-m0c --status in_progress --assignee claude
133-
```
134-
135-
**Duration**: 1-2 weeks per migration
136-
137-
### Phase 2: Validation
138-
139-
After migrations:
140-
- Run full test suite (incrementally, not all at once)
141-
- Verify no regressions in existing functionality
142-
- Performance benchmarks
143-
144-
### Phase 3: Epic Closure
145-
146-
```bash
147-
# Close epics
148-
bd close loop-uci --reason "All acceptance criteria met"
149-
bd close loop-vce --reason "All implementation phases complete"
150-
```
151-
152-
### Phase 4: Publishing
153-
154-
- Tag release
155-
- Publish packages
156-
- Update documentation
128+
- `docs/execution-plan/STATUS.md`
129+
- `docs/execution-plan/TASK-REGISTRY.md`
130+
- `bd ready` / `bd status`
157131

158132
---
159133

160134
## 4. Dependency Summary
161135

162136
```
163-
COMPLETE REMAINING
164-
════════ ═════════
137+
COMPLETE CURRENT TRACK
138+
════════ ═════════════
165139
166140
┌─────────────────────────────────────────────────────────┐
167141
│ All Implementation Phases │
@@ -174,16 +148,24 @@ bd close loop-vce --reason "All implementation phases complete"
174148
┌──────────────────────────────────────┐
175149
│ Migration Tasks │
176150
│ │
177-
│ loop-cyl: rlm-claude-code ❌ OPEN │
178-
│ loop-m0c: recurse ❌ OPEN │
151+
│ loop-cyl: rlm-claude-code ✅ CLOSED |
152+
│ loop-m0c: recurse ✅ CLOSED |
179153
└─────────────────┬────────────────────┘
180154
181155
182156
┌──────────────────────────────────────┐
183157
│ Epic Closure │
184158
│ │
185-
│ loop-uci: Unified RLM ◐ IN_PROG │
186-
│ loop-vce: Lean FV ◐ IN_PROG │
159+
│ loop-uci: Unified RLM ✅ CLOSED |
160+
│ loop-vce: Lean FV ✅ CLOSED |
161+
└─────────────────┬────────────────────┘
162+
163+
164+
┌──────────────────────────────────────┐
165+
│ Active Follow-on Backlog │
166+
│ │
167+
│ loop-azq child tasks (SPEC gaps) │
168+
│ tracked in execution-plan docs │
187169
└──────────────────────────────────────┘
188170
```
189171

@@ -200,27 +182,22 @@ bd close loop-vce --reason "All implementation phases complete"
200182
- [ADR-002: Lean Formal Verification](./adr/ADR-002-lean-formal-verification.md)
201183

202184
### Implementation Roadmap
203-
- [Implementation Roadmap](./implementation-roadmap.md) (historical, superseded by this doc)
185+
- [Implementation Roadmap](./implementation-roadmap.md) (historical)
186+
- `docs/execution-plan/STATUS.md` (authoritative live tracker)
204187

205188
---
206189

207190
## 6. Commands Reference
208191

209192
```bash
210-
# View current status
193+
# View live status
211194
bd ready # Show ready-to-work issues
212195
bd list --status open # Show open issues
213196
bd stats # Project statistics
214197

215-
# Work on migrations
216-
bd update loop-cyl --status in_progress
217-
bd update loop-m0c --status in_progress
218-
219-
# Close when complete
220-
bd close loop-cyl --reason "Migration complete"
221-
bd close loop-m0c --reason "Migration complete"
222-
bd close loop-uci --reason "All acceptance criteria met"
223-
bd close loop-vce --reason "All phases complete"
198+
# Inspect current post-M7 backlog
199+
bd show loop-azq
200+
bd children loop-azq
224201

225202
# Sync at session end
226203
bd sync --from-main

docs/implementation-roadmap.md

Lines changed: 19 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
> Intelligent sequencing for maximum efficacy and performance
44
5+
> Historical planning artifact. Last reconciled against Beads/`STATUS.md` on 2026-02-20.
6+
> Live issue state is tracked in `bd` and `docs/execution-plan/STATUS.md`; tables below are archival sequencing context.
7+
58
## Executive Summary
69

710
This roadmap sequences work across two major initiatives:
@@ -10,9 +13,18 @@ This roadmap sequences work across two major initiatives:
1013

1114
The plan maximizes parallelization while respecting dependencies, targeting efficient resource utilization.
1215

16+
## Current Authoritative State (2026-02-20)
17+
18+
- Runtime/spec closure is tracked under `loop-azq` children in Beads.
19+
- M7 milestone cards are complete and archived under `docs/execution-plan/evidence/2026-02-20/milestone-M7/`.
20+
- For current execution order and status, use:
21+
- `docs/execution-plan/STATUS.md`
22+
- `docs/execution-plan/TASK-REGISTRY.md`
23+
- `bd status` / `bd ready`
24+
1325
---
1426

15-
## 1. Current State Analysis
27+
## 1. Historical State Analysis (Archived)
1628

1729
### 1.1 rlm-core Status
1830

@@ -296,35 +308,15 @@ For maximum throughput, use **3 parallel agent sessions**:
296308

297309
---
298310

299-
## 6. Recommended Immediate Actions
300-
301-
### Today
302-
303-
1. **Unblock Lean FV work**: Remove epic blocker from src-726 and src-4sz
304-
2. **Verify rlm-core**: Run `cargo build` and `cargo test` to ensure code compiles
305-
3. **Start Wave 1**: Begin work on src-8ox (Go bindings) and src-726 (Lean REPL)
311+
## 6. Recommended Immediate Actions (Historical)
306312

307-
### This Week
313+
The action list below was valid for the original roadmap horizon and is retained only for archival context.
308314

309-
4. **Set up Lean environment**: Install Lean 4, elan, mathlib
310-
5. **Clone and test Topos**: Verify topos MCP server works
311-
6. **Complete observability track**: src-tzy, src-dt2, src-y7b (lower priority but parallelizable)
315+
For current work intake and execution:
312316

313-
### Command to Start
314-
315-
```bash
316-
# Approve epic and remove blockers
317-
bd update src-vce --status in_progress
318-
319-
# Start Lean REPL task
320-
bd update src-726 --status in_progress --assignee claude
321-
322-
# Start Go Bindings task
323-
bd update src-8ox --status in_progress --assignee claude
324-
325-
# Start Topos Integration task
326-
bd update src-4sz --status in_progress --assignee claude
327-
```
317+
1. Start with `bd ready` and `bd show loop-azq`.
318+
2. Follow `docs/execution-plan/STATUS.md` and `docs/execution-plan/TASK-REGISTRY.md`.
319+
3. Treat this roadmap's legacy issue IDs (`src-*`) as historical references, not active queue items.
328320

329321
---
330322

docs/spec/SPEC-20-typed-signatures.md

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
> DSPy-inspired typed signatures for rlm-core
44
5-
**Status**: Partially implemented (typed runtime protocol and validation parity implemented through M7-T03; remaining composition/runtime-governance refinements are up-next critical scope tracked in `loop-azq`)
5+
**Status**: Implemented in `rlm-core` runtime (typed runtime protocol + deterministic composition validation + derive type-inference refinements)
66
**Created**: 2026-01-20
77
**Epic**: loop-zcx (DSPy-Inspired RLM Improvements)
88
**Tasks**: loop-d75, loop-jqo, loop-9l6, loop-bzz
@@ -21,11 +21,11 @@ Implement DSPy-style typed signatures that enable composable modules, automatic
2121
| SPEC-20.02 Field specification model | Implemented | `rlm-core/src/signature/types.rs` |
2222
| SPEC-20.03 Runtime validation | Implemented (input pre-validation + output validation path) | `validate_fields` in `rlm-core/src/signature/validation.rs`, `Predict::forward` in `rlm-core/src/module/predict.rs` |
2323
| SPEC-20.04 Derive macro attributes | Implemented (including explicit enum values) | `rlm-core-derive/src/lib.rs` |
24-
| SPEC-20.05 Type inference | Partially implemented | Primitive/List/Option inference in `rlm-core-derive/src/lib.rs`; explicit enum via `#[field(enum_values = \"...\")]` |
24+
| SPEC-20.05 Type inference | Implemented | Primitive/List/Option plus reference/slice/array inference in `rlm-core-derive/src/lib.rs`; explicit enum via `#[field(enum_values = \"...\")]` |
2525
| SPEC-20.07..20.10 SUBMIT + REPL protocol | Implemented | `rlm-core/python/rlm_repl/sandbox.py`, `rlm-core/python/rlm_repl/main.py`, `rlm-core/src/repl.rs` |
2626
| SPEC-20.11 Module trait | Implemented | `rlm-core/src/module/mod.rs` |
2727
| SPEC-20.12 Predict wrapper | Implemented (with deterministic pre-exec input validation) | `rlm-core/src/module/predict.rs` |
28-
| SPEC-20.13 Composition validation | Partially implemented | `rlm-core/src/module/compose.rs` |
28+
| SPEC-20.13 Composition validation | Implemented | Deterministic direct-field compatibility checks (`validate_direct_field_mapping`) + validation-backed decode path in `rlm-core/src/module/compose.rs` |
2929

3030
## Requirements
3131

@@ -177,14 +177,16 @@ Automatic FieldType inference from Rust types.
177177
| `bool` | `FieldType::Boolean` |
178178
| `Vec<T>` | `FieldType::List(T)` |
179179
| `Option<T>` | Same as T, but `required = false` |
180+
| `&T` | Same as `T` |
181+
| `[T]`, `[T; N]` | `FieldType::List(T)` |
180182
| `String` + `#[field(enum_values = "...")]` | `FieldType::Enum(values)` |
181183
| Rust enum type without `enum_values` annotation | `FieldType::Custom(type_name)` (current behavior) |
182184
| Other | `FieldType::Custom(type_name)` |
183185

184186
**Acceptance Criteria**:
185-
- [ ] All primitive types inferred correctly
186-
- [ ] Generic types (Vec, Option) handled
187-
- [ ] Custom types fall back to Custom variant
187+
- [x] All primitive types inferred correctly
188+
- [x] Generic types (Vec, Option, references/slices/arrays) handled
189+
- [x] Custom types fall back to Custom variant
188190

189191
### SPEC-20.06: Compile-Time Validation
190192

@@ -454,9 +456,9 @@ where
454456
- Propagate LM to all sub-modules
455457

456458
**Acceptance Criteria**:
457-
- [ ] Type-safe composition at compile time
458-
- [ ] Runtime validation for dynamic cases
459-
- [ ] LM propagation through composition
459+
- [x] Type-safe composition at compile time
460+
- [x] Runtime validation for dynamic cases
461+
- [x] LM propagation through composition
460462

461463
---
462464

@@ -482,12 +484,12 @@ where
482484

483485
| Test | Description | Spec |
484486
|------|-------------|------|
485-
| `signature::tests::derive_tests::*` | Derive macro and signature behavior | SPEC-20.04, SPEC-20.05 |
487+
| `signature::tests::derive_tests::*` | Derive macro and signature behavior (including optional-list/array type-inference coverage) | SPEC-20.04, SPEC-20.05 |
486488
| `signature::validation::tests::*` | Validation behavior and error paths | SPEC-20.03, SPEC-20.09 |
487489
| `signature::submit::tests::*` | SubmitResult/SubmitError serialization and semantics | SPEC-20.08, SPEC-20.09 |
488490
| `tests/test_repl.py::TestReplServer::test_submit_*` | Python SUBMIT scenarios (success + validation failures) | SPEC-20.07, SPEC-20.09, SPEC-20.10 |
489491
| `repl::tests::test_submit_result_roundtrip_*` (ignored) | Rust/Python end-to-end submit_result roundtrip scenarios | SPEC-20.08, SPEC-20.10 |
490-
| `module::compose::tests::*` | Module composition/name generation scaffolding | SPEC-20.13 |
492+
| `module::compose::tests::*` | Module composition runtime mapping validation + deterministic error behavior | SPEC-20.13 |
491493
| `module::predict::tests::*` | Predict wrapper behavior and prompt/input formatting | SPEC-20.12 |
492494

493495
---

0 commit comments

Comments
 (0)