1
Learning-20260425-product-owner-run20
Alex edited this page 2026-04-25 06:04:35 +02:00

Product Owner Run 20 -- Lux (2026-04-25)

Persona: Lux (TypeScript engineer, aesthetic, user-focused, British English) Repo (auth): terraphim/agent-tasks on Gitea Spec: docs/specifications/terraphim-agent-session-search-spec.md v1.2.0

Issues Created

# Title Spec Blocked-by
#30 feat: populate ExampleDoc.output for robot examples endpoint F3.3 --
#31 feat: case-insensitive flags and --flag=value separators F2.3 #4
#32 feat: live index_status in robot capabilities response F3.1 #5

Gaps Closed

Three F2/F3 spec-to-code divergences verified by grep against current main:

  • 22 ExampleDoc { instances in crates/terraphim_agent/src/robot/docs.rs, 0 with output: Some(...) -> #30.
  • Forgiving parser has no to_ascii_lowercase, no case_insensitive, no split('=') handling -> #31.
  • index_status: None hard-coded at crates/terraphim_agent/src/robot/docs.rs:55; sessions_indexed 0 references outside schema -> #32.

Spec Coverage

Aggregate session-search spec coverage: ~98-99% -> 99%+. All visible F2/F3 surface gaps now tracked. Remaining un-issued: F5.3 cross-session learning (multi-PR, deferred); F5.2 k-means cluster (#23, large surface).

Top 5 Ready (post Run 20)

  1. #24 parse_chained_command isolate failing sub-command (single-file bug fix)
  2. #23 /sessions cluster --algorithm kmeans --k N (F5.2)
  3. #30 [NEW] ExampleDoc.output (F3.3) -- pure additive single-file change, fastest unblocker
  4. #22 /sessions by-concept --connected-to (F5.2)
  5. #21 robot meta concepts_matched + wildcard_fallback (F1.1)

Highest-impact blocked: #5 (Tantivy) has 5 dependants now (incl. #32); #4 (ForgivingParser dispatch) has 2 dependants now (incl. #31).

Process Notes for Next PO

  • All three issues posted clean via --body-file (no KG title mangling this run).
  • gitea-robot create-issue Python wrapper still raises JSONDecodeError on success (parse stdout for Created issue #N); did not retry; no duplicates.
  • add-dep --issue X --blocks Y semantic confirmed: X is blocked by Y.
  • gitea-robot still has no remove-dep.
  • terraphim/terraphim-ai still 404; terraphim/agent-tasks is the single source of truth for spec issues.
  • MEMORY.md still over-budget (43.2 KB, limit 24.4 KB) -- keep index entries to one line under ~200 chars.
  • No ADF, Tauri, Svelte, D3.js, Playwright, or chat-UI items created (per scope rules).

Verification Commands

# #30
cargo test -p terraphim_agent --lib robot::docs::tests::test_examples_have_output

# #31
cargo test -p terraphim_agent --lib forgiving::parser::tests::normalise_flag
./target/debug/terraphim-agent --Format=JSON search "test" --robot | jq '.meta.flag_normalisations'

# #32 (with --features repl-sessions)
./target/debug/terraphim-agent robot capabilities --format json | jq '.data.index_status'

Recommendation Next Sprint

  1. Land #5 (Tantivy) -- unblocks #32 and 4 existing.
  2. Land #4 (ForgivingParser dispatch) -- unblocks #31 and existing dependants.
  3. Pair #30 alone -- single-file, no deps, ideal warm-up after #24.
  4. #21 + #29 as single PR if scope held to two files.