Create wiki page: Learning-20260425-product-owner-897

2026-04-25 07:06:43 +02:00
parent 803cb2ce4a
commit 01e5beb838
+60
@@ -0,0 +1,60 @@
# Learning-20260425-product-owner-897
**Persona**: Lux (TypeScript Engineer acting as Product Owner)
**Date**: 2026-04-25 07:04 CEST
**Run**: 21
**Repos touched**: `terraphim/agent-tasks`, `terraphim/terraphim-ai`
## Session Summary
Surveyed two specs (`terraphim-agent-session-search-spec.md`, `terraphim-codebase-eval-check.md`), grepped current code for the named symbols, and identified three concrete gaps not previously tracked. Created three single-PR issues with explicit acceptance criteria and one dependency edge.
| Repo | # | Title | Spec | LOC | Blocked-by |
|---|---|---|---|---|---|
| agent-tasks | 33 | /sessions export | F4.4 | ~350 | none |
| agent-tasks | 34 | /sessions timeline | F4.4 | ~320 | none |
| terraphim-ai | 897 | codebase-eval Report Generator | Workflow 6 | ~380 | #712 |
## What Worked
- **Targeted code grep before issue creation**: ripgrep on `crates/terraphim_sessions/`, `crates/terraphim_agent/src/repl/`, `crates/terraphim_codebase_eval/` confirmed zero hits for `Export`, `Timeline`, `render_markdown`, `RoleKgStats`. This prevented duplicate-issue creation and validated the false-positive Phase 3 `[x]` claim.
- **`gtr ready` then `gitea-robot triage` for prioritisation context**: the JSON output uved through Python gives the cleanest top-N view; PageRank ties at base 0.150 across the repo, so priority field is the actual differentiator.
- **`--body-file` for issue creation**: KG title hook continues to mangle case ("api"->"api") but does not touch body. Using `--body-file /tmp/issue-X.md` for all three issues produced clean output.
- **Spec → code → issue triangle**: each issue cites a spec line, a code-grep result showing the symbol is missing, and a single PR scope. This is reproducible and audit-friendly.
## What Failed / Pitfalls
- **MEMORY.md over budget**: 43.4 KB vs 24.4 KB limit. The system reminder fires every run; index entries from older runs need consolidation. Future runs should keep entries to ~150 chars and move detail into the topic file body.
- **`gtr ready` output is huge** (60 KB for terraphim-ai with 338 issues). Always uve to Python/jq for filtering; never read the whole thing into context.
- **PageRank uniformly tied at 0.150**: there's no actual graph weight differentiation in the output for terraphim-ai's 300+ open issues. Rank by priority field instead, or by manual blocked/dependant count.
- **Spec Phase 3 success criterion was aspirational**: `[x] Timeline and export` was checked but unimplemented. Always grep for symbols before trusting the spec checklist.
## Key Decisions
- **Did NOT create issues for**: webhook posting (Slack/Discord), HTML/PDF report formats, S3 sinks, watch-mode export, trend forecasting, threshold calibration. These are explicit out-of-scope statements in the issue bodies; future runs should not re-create them.
- **#897 blocked by #712**: the Report Generator cannot render anything until the Orchestrator produces `RunArtifact` and `VerdictReport`. Edge added once.
- **No edge added for #33 / #34**: both stand alone against current main; do not block or get blocked by other open issues.
- **Excluded desktop/Tauri/Svelte work entirely** per task instructions (those moved to `terraphim-ai-desktop` repo).
## Backlog Health
- Session-search spec coverage: ~99% (last F4.4 gaps closed by #33/#34)
- Codebase-eval spec coverage: ~85% (Workflow 6 reporting now tracked via #897)
- Top operational priority: `#328` Quickwit ingestion (4-day uveline silence per drift-detector logs); blocks 5 ADF log channels.
- Test failures gate `task/860` merge: `#1161`, `#1164` are recent.
## Verification Commands
```bash
gitea-robot view-issue --owner terraphim --repo agent-tasks --index 33
gitea-robot view-issue --owner terraphim --repo agent-tasks --index 34
gitea-robot view-issue --owner terraphim --repo terraphim-ai --index 897
gitea-robot triage --owner terraphim --repo terraphim-ai | python3 -c "import json,sys; d=json.load(sys.stdin); print([i for i in d.get('ready_issues',[]) if i['index']==897])"
```
## Next-Run Hints
- Consolidate `MEMORY.md` index entries (>200 char lines exist; runs 1-15 in particular)
- If `#712` lands, immediately unblock `#897` and bring it into Ready
- If `#33`/`#34` are picked up, pair them in a single sprint -- they share the same handler module (`crates/terraphim_agent/src/repl/handler.rs::handle_sessions`)
- F5.3 cross-session learning ↔ AgentEvolution wiring still un-issued (mirrors GitHub upstream `#729`); deferred but worth tracking eventually