Funk-lab/admin/ia/finlab.md
alkatrazz b649afd059 feat(finlab): console Claude Code finance in-cluster + toolkit d'analyse
Intègre finlab (ex-projet Projets/Finance) au lab comme une console Claude Code
web spécialisée finance — l'esprit OpenAlice, mais c'est le vrai Claude Code sur
l'abonnement (login persisté, pas d'API facturée), agentique, avec la boîte à
outils finlab (Yahoo Finance) branchée en MCP.

- tools/finlab/ : source finlab rapatriée + Dockerfile (Python 3.12 + Node +
  claude-code + ttyd) + persona workspace/CLAUDE.md + branchement MCP + entrypoint
  (seed du workspace no-clobber sur le PVC)
- .github/workflows/build-finlab.yml : build GHCR funk-finlab + bump manifest (main)
- k8s/apps/finlab/ : Deployment/Service/PVC/IngressRoute (finance.lab.local) +
  Middleware basicAuth (shell web protégé) ; PVC = HOME (login) + workspace
- k8s/apps-of-apps/apps/finlab.yaml : Application ArgoCD
- .mcp.json (racine) : outils finlab dans les sessions Claude Code du lab
- admin/ia/finlab.md + READMEs + CLAUDE.md : doc + enregistrement

Analyse/aide à la décision uniquement — aucun ordre réel (paper trading Alpaca
fictif seul exécutable).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-29 22:43:53 +02:00

58 lines
3.1 KiB
Markdown

# FinLab — console Claude Code finance + toolkit d'analyse de marché
**Quoi** : boîte à outils d'analyse de marché maison (`finlab`, données Yahoo Finance gratuites)
+ une **console Claude Code web** spécialisée finance, déployée in-cluster. Remplace l'approche
OpenAlice abandonnée (cf. `admin/ia/openalice.md`) par quelque chose de plus simple et plus
puissant : **ton vrai Claude Code** (sur ton abonnement, pas l'API au compteur), agentique, avec
les outils finlab branchés.
**Où** :
- Source : `tools/finlab/` (code finlab + Dockerfile + persona `workspace/CLAUDE.md`).
- Image : CI `.github/workflows/build-finlab.yml``ghcr.io/alkatrazz24/funk-finlab`.
- Déploiement : ns `ai`, `finance.lab.local`, manifests `k8s/apps/finlab/`, app ArgoCD
`k8s/apps-of-apps/apps/finlab.yaml`.
- MCP local : `.mcp.json` (racine repo lab) → outils finlab dans les sessions Claude Code du lab.
**Cadre** : analyse/aide à la décision uniquement, **aucun ordre réel** (seul le paper trading
Alpaca fictif est exécutable). Persona dans `tools/finlab/workspace/CLAUDE.md` (profil swing
trader concentré tech/semis, philosophie R:R/concentration/discipline).
## Architecture
| Composant | Détail |
|---|---|
| Console | `ttyd` (terminal web :7681) → CLI `claude` (Claude Code) dans `/home/finlab/workspace` |
| Cerveau | **Abonnement Claude Code** (login OAuth persisté dans `~/.claude` sur le PVC) — pas de clé API facturée |
| Outils | finlab en **MCP** (`finlab.mcp_server`, stdio) + CLI `python -m finlab.cli ...` |
| PVC `finlab-data` | 5Gi NFS → `/home/finlab` : login + workspace (configs éditables + `.cache`) |
| Auth | basicAuth Traefik (`finlab-auth`, middleware) — un shell web ne s'expose pas nu |
Le workspace est **seedé depuis l'image au 1er boot** (`cp -rn` no-clobber) puis vit sur le PVC :
edits (portefeuille) et login persistent ; rebuild d'image = seuls les fichiers manquants ajoutés.
## Outils finlab
`digest` (vue d'ensemble compacte, à privilégier), `portfolio_summary`, `opportunities`/`scan`,
`technical_analysis`/`tech` (RSI/MACD/MM50-200/Bollinger/ATR), `fundamentals` (PER/PEG/ROE/dette/
cible), `trade_plan`/`plan` (entrée/stop ATR/objectifs/taille/**R:R**), `alerts_today`, `price`,
plus paper trading (`paper_account`/`paper_positions`/`paper_order`, clés Alpaca optionnelles).
Configs (workspace, éditables) : `portfolio.yaml` (positions Revolut), `watchlists.yaml` (thèmes
chaîne IA/datacenter), `alerts.yaml` (règles).
## Onboarding (premier boot)
Checklist détaillée : `k8s/apps/finlab/README.md`.
1. Secrets manuels dans `ai` : `ghcr-pull` (pull GHCR) + `finlab-auth` (htpasswd basicAuth).
2. Ouvrir `finance.lab.local``claude``/login` (abonnement, persisté sur le PVC).
## Accès programmatique
- **MCP dans le repo lab** : `.mcp.json` racine pointe `tools/finlab/.venv` → outils finlab dans
les sessions Claude Code du lab (approbation MCP au 1er lancement).
- **Headless** : `kubectl -n ai exec deploy/finlab -- python -m finlab.cli digest`.
## Liens
- Source historique : ex-projet `Projets/Finance` (rapatrié ici).
- Approche précédente abandonnée : `admin/ia/openalice.md`.