Files
fn_registry/dev/issues/0088i-trading-journal-app.md

57 lines
2.2 KiB
Markdown

---
id: "0088i"
title: "Trading: app `trading_journal` (reflection log)"
status: pendiente
type: feature
domain:
- trading
scope: app-scoped
priority: alta
depends: []
blocks: []
related: []
created: 2026-05-17
updated: 2026-05-17
tags: []
---
# 0088i — Trading: app `trading_journal` (reflection log)
**Status:** pendiente
**Created:** 2026-05-14
**Type:** feature
**Parent:** 0088
**Depends:** 0088a, 0088d
**Blocks:** 0088j (assertions sobre adherencia a reflection)
## Problema
Sin post-mortem por trade y por sesion, "mejorar" es una ilusion. El journal fuerza la reflexion en momentos clave (close de trade, fin de sesion, dia de drawdown notable). Es la pieza de **skill autoiterado** propiamente dicha: no es codigo del runner, es el ledger psicologico/operativo del operador.
## Piezas
1. App `projects/trading/apps/trading_journal/` (Mantine UI + sqlite_api + Go service).
2. Schema:
- `sessions` (id, started_at, ended_at, market_context, mood_tag, notes).
- `trade_reflections` (id, trade_group_id (link a transactions), opened_at, closed_at, thesis, what_went_right, what_went_wrong, lessons, tags, screenshots_paths).
- `weekly_reviews` (id, week_iso, sharpe_week, drawdown_week, n_trades, adherence_score, lessons).
- `tags` (id, name, color).
3. Reglas de UX:
- **Forzar reflection** antes de marcar un trade_group como "closed". Si no se rellena, queda `closed_pending_reflection` y aparece destacado.
- Atajo desde Mantine para vincular un trade con N screenshots (drop en local_files/).
4. Funciones puras:
- `compute_adherence_score_py_finance(trades, plan_yaml) -> float` (mide cuanto de lo ejecutado coincide con el plan declarado).
- `aggregate_weekly_metrics_py_finance(trades, reflections) -> dict`.
5. `e2e_checks`: build + smoke + check de `force_reflection` (intentar cerrar sin reflection devuelve 422).
6. Capability group `journal`. Pagina madre `docs/capabilities/journal.md`.
## Aceptacion
- Cerrar trade sin reflection es imposible via UI/API.
- Adherence score computable y exportable.
- Weekly review autogenerado los domingos (cron) — opcional para cerrar el issue, no obligatorio.
## No-objetivos
- AI auto-resumiendo reflections — futuro.
- Sentiment analysis sobre notas.