page:docs-genty-features-backlog-updated-next-steps
Next Steps reference
Concrete actions to begin executing the gap analysis roadmap.
Next Steps
Concrete actions to begin executing the gap analysis roadmap.
**Update 2026-06-05:** All 18 Pi parity + trust enforcement gaps are now CLOSED.
The priority items below (from the original M0 quick wins) remain the next focus.
---
First 5 PRs to Create
These are from the M0 quick wins, ordered by downstream impact. All have S remaining effort and no blockers.
PR 1: GAP-SUBOBS-001 -- Stream CLI harness stdout/stderr in real-time
**Why first:** Unblocks 22 downstream gaps -- the highest-leverage single item in the entire backlog.
- invokeHarness() pipes child process stdout/stderr in real-time, not after exit - JournalWatcher receives incremental output events during CLI harness execution - Pi adapter streaming continues to work (no regression) - Output events are timestamped and associated with the correct effect ID
- **Files:**
packages/genty/platform/src/harness/invoker.ts,packages/genty/platform/src/harness/invoker/launch.ts - **Branch:**
feat/subobs-001-cli-harness-streaming - **Acceptance criteria:**
- **Suggested title:**
feat(platform): stream CLI harness stdout/stderr in real-time
PR 2: GAP-PERF-001 -- Wire ephemeral cache_control across all prompt adapters
**Why second:** Critical priority, directly reduces API costs and latency for every orchestrated run.
- Stable strata sections include cache_control: { type: 'ephemeral' } in API calls - All harness adapters apply cache hints based on strata volatility scores - Cache-break detection via checksums triggers cache invalidation appropriately - Token cost reduction is measurable in test scenarios
- **Files:**
packages/babysitter-sdk/src/prompts/strata.ts,packages/genty/platform/src/harness/piWrapper.ts,packages/adapters/codecs/src/claude-code/ - **Branch:**
feat/perf-001-prompt-cache-control - **Acceptance criteria:**
- **Suggested title:**
feat(sdk): wire ephemeral cache_control across all prompt adapters
PR 3: GAP-STATE-001 -- Inject long-term memories into new run prompts
**Why third:** Closes the loop on memory extraction (80% done) and unblocks memory consolidation.
- New longTermMemory prompt part renders extracted memories from memoryExtraction.ts - Memories are filtered by relevance (project, category) and recency - Section mapped in PART_STRATA_MAP as runtime stratum - Memories appear in assembled prompts for new runs
- **Files:**
packages/babysitter-sdk/src/prompts/parts/(newlongTermMemory.ts),packages/babysitter-sdk/src/prompts/strata.ts(add toPART_STRATA_MAP) - **Branch:**
feat/state-001-memory-prompt-injection - **Acceptance criteria:**
- **Suggested title:**
feat(sdk): inject long-term memories into new run prompts
PR 4: GAP-HADAPT-003 -- Auto-downgrade model when approaching session budget
**Why fourth:** Prevents budget overruns during autonomous runs. Builds on solid existing cost infrastructure.
- When session cost exceeds 80% of budget, model selection automatically downgrades to cheaper model - Downgrade respects task requirements (does not downgrade below minimum capability) - Budget alert thresholds trigger downgrade evaluation - Operator can override auto-downgrade via config tool
- **Files:**
packages/genty/platform/src/harness/selectionPolicies.ts,packages/genty/platform/src/session/cost.ts,packages/genty/platform/src/harness/modelSelection.ts - **Branch:**
feat/hadapt-003-budget-auto-downgrade - **Acceptance criteria:**
- **Suggested title:**
feat(platform): auto-downgrade model when approaching session budget
PR 5: GAP-MCPC-003 -- Wire channel permission relay into breakpoint resolution
**Why fifth:** Enables breakpoint approval via Slack, Discord, email -- critical for remote/autonomous workflows. The relay implementation already exists; this is pure integration wiring.
- Breakpoint resolution checks for channel-based approvals via ChannelPermissionRelay - Racing claim pattern works: first response (local or channel) wins - Security config (terminalOnlyTags) is respected - Channel approvals are logged to governance-decisions.jsonl
- **Files:**
packages/genty/platform/src/mcp/channels/permissionRelay.ts, breakpoint resolution inpackages/genty/platform/src/breakpoints/ - **Branch:**
feat/mcpc-003-channel-breakpoint-approval - **Acceptance criteria:**
- **Suggested title:**
feat(platform): wire channel permission relay into breakpoint resolution
---
Respec Decision Required
GAP-UX-001: Rendering Foundation
**Decision needed before Track 6 (10 gaps, M4 milestone) can start.**
The original spec assumed Ink-based components embedded in packages/babysitter-sdk/. The architecture has evolved:
packages/tula/ui/is being extracted as a component librarypackages/observer-dashboard/exists as a separate package
**Options:** 1. **tula-ui** as the rendering foundation (React components, reusable across web and Ink) 2. **observer-dashboard** as the primary rendering target (web-only) 3. **Hybrid:** tula-ui for components, observer-dashboard for full dashboard
**Action:** Schedule a focused respec session. Document the decision. Update GAP-UX-001 and all 6 dependent NEEDS_RESPEC gaps (UX-001a, UX-001b, UX-001d, UX-001e, UX-001f, SUBOBS-005).
**If deferred:** Track 6 remains blocked. 12 gaps in M4 cannot start.
---
Ongoing Gap Triage Process
As features land, gaps should be triaged to keep this analysis current.
When a PR merges that addresses a gap:
1. Update phase3-reclassified.json -- change finalStatus to CLOSED, set reclassifiedPriority and remainingEffort to null, add statusChangeReason 2. Update gap-status-matrix.md -- move the gap to the CLOSED section 3. Check if any downstream gaps are now unblocked (check blockers in phase3-reclassified.json and dependencies in phase4-dependency-graph.json) 4. If a downstream gap is unblocked and ready, move it to the current milestone
When a gap's scope changes:
1. If the spec's assumptions are outdated, change status to NEEDS_RESPEC 2. If new requirements emerge, add a new gap ID (use the next available number in the relevant category prefix) 3. Update phase5-effort-recalibration.json with revised effort estimate
Monthly review cadence:
1. Run a quick audit of IN_PROGRESS gaps -- have any been completed without being closed? 2. Check OPEN gaps -- have any been started? 3. Review the critical path -- has GAP-SUBOBS-001 been resolved? If so, update the critical path analysis 4. Check if ECO-002 (CC Marketplace Protocol) is still relevant or if the CC marketplace has changed
---
How to Update This Analysis
Regenerate the gap-status-matrix.md
After editing phase3-reclassified.json or phase5-effort-recalibration.json, regenerate the matrix:
# From repo root, run the matrix generator
node -e "
const fs = require('fs');
const phase3 = JSON.parse(fs.readFileSync('docs/genty-features-backlog-updated/phase3-reclassified.json', 'utf8'));
const phase5 = JSON.parse(fs.readFileSync('docs/genty-features-backlog-updated/phase5-effort-recalibration.json', 'utf8'));
const phase6tasks = JSON.parse(fs.readFileSync('docs/genty-features-backlog-updated/phase6-task-definitions.json', 'utf8'));
// ... (see scripts in this analysis for full generator)
"Add a new gap
1. Add the gap to phase3-reclassified.json with all fields 2. Add effort recalibration to phase5-effort-recalibration.json 3. Add task definition to phase6-task-definitions.json 4. Add dependency edges to phase4-dependency-graph.json 5. Regenerate gap-status-matrix.md
Close a milestone
When all gaps in a milestone are CLOSED or moved: 1. Update phase6-roadmap.md with completion date and actual effort 2. Update phase6-milestone-summary.md with retrospective notes 3. Verify next milestone's dependencies are all satisfied