diff --git a/apps/tracker/cli.py b/apps/tracker/cli.py index 5dd2dfc..bcdba2f 100644 --- a/apps/tracker/cli.py +++ b/apps/tracker/cli.py @@ -1093,41 +1093,123 @@ def _print_help() -> None: padding=(0, 2), )) - table = Table(box=box.SIMPLE, show_header=True, header_style="bold yellow", padding=(0, 2)) - table.add_column("Command", style="bold green", no_wrap=True) - table.add_column("Description") - table.add_column("Key Options", style="dim") - table.add_row( + def _section(title: str) -> Table: + t = Table(box=box.SIMPLE, show_header=False, padding=(0, 2), show_edge=False) + t.add_column("Command", style="bold green", no_wrap=True, min_width=32) + t.add_column("Description") + t.add_column("Key Options", style="dim") + _console.print(f" [bold yellow]{title}[/]") + return t + + # ── 저널 & 리더보드 ───────────────────────────────────────── + t = _section("저널 & 리더보드") + t.add_row( "leaderboard [dim]lb[/]", - "기본 public SQS 순위표 출력 및 LEADERBOARD.md 재생성", + "public SQS 순위표 출력 및 LEADERBOARD.md 재생성", "-n N --sort sqs|rqs|wfqs|deployment|promotion --include-retired", ) - table.add_row( + t.add_row( "record [dim]rec[/]", "실험 결과를 저널에 기록", - "-e NAME -H TEXT --walk-forward-summary PATH --robustness-summary PATH --out-of-time-robustness-summary PATH", + "-e NAME -H TEXT -v better|worse|neutral --walk-forward-summary PATH", ) - table.add_row( + t.add_row( "show [dim]s[/]", "특정 저널 항목 상세 조회", "ENTRY_ID --diagnostics", ) - table.add_row( + t.add_row( + "check-duplicate [dim]dup[/]", + "실험이 이미 저널에 기록됐는지 확인", + "-e NAME", + ) + t.add_row( + "compute-sqs [dim]cs[/]", + "단일 항목의 SQS v9 breakdown 계산·출력", + "TARGET --save", + ) + t.add_row( + "rescore-public [dim]rsp[/]", + "저장된 public 점수 일괄 재계산", + "--prefix NAME --min-version N --max-version N", + ) + _console.print(t) + + # ── 첨부 (attach) ─────────────────────────────────────────── + t = _section("첨부 (attach)") + t.add_row( + "attach-wfv [dim]awf[/]", + "walk-forward 요약을 저널 항목에 첨부", + "TARGET --summary PATH", + ) + t.add_row( + "attach-robustness [dim]arb[/]", + "robustness matrix 요약 첨부", + "TARGET --summary PATH", + ) + t.add_row( + "attach-oot-robustness [dim]aoot[/]", + "out-of-time robustness 요약 첨부", + "TARGET --summary PATH", + ) + t.add_row( + "attach-reset-common-window [dim]arcw[/]", + "reset common-window 요약 첨부", + "TARGET --summary PATH", + ) + t.add_row( + "attach-overfit-check [dim]aoc[/]", + "overfit-check 점수 첨부 (사전 생성 리포트 또는 직접 실행)", + "TARGET --report PATH --run --quick", + ) + _console.print(t) + + # ── 분석 & 검증 ───────────────────────────────────────────── + t = _section("분석 & 검증") + t.add_row( + "overfit-check", + "과적합 분석 (DSR·PBO·파라미터 민감도·MC·WF Permutation)", + "--config NAME --quick --skip TESTS --output-json PATH", + ) + t.add_row( + "scenario-test", + "합성 시나리오 백테스트 (Regime Robustness Score)", + "--config NAME --scenario NAME --group NAME --quick --save", + ) + _console.print(t) + + # ── 트레이딩 & 파이프라인 ──────────────────────────────────── + t = _section("트레이딩 & 파이프라인") + t.add_row( "paper", "Alpaca 페이퍼 트레이딩 [dim](fithia2 paper 로 상세 확인)[/]", - "start run positions status trades ...", + "start run run-open run-close positions status trades equity auto ...", ) - table.add_row( + t.add_row( "pipeline", "데이터 파이프라인 실행 [dim](fithia2 pipeline 로 상세 확인)[/]", - "run [dim]--step poller|fetcher|parser|features|labels[/]", + "run --step poller|fetcher|parser|features|labels", + ) + t.add_row( + "refresh [dim][snapshot_id][/]", + "Parquet 스냅샷 새로고침 (미지정 시 configs에서 자동 감지)", + "[snapshot_id]", ) - table.add_row( + t.add_row( + "web", + "웹 GUI 서버 실행", + "", + ) + _console.print(t) + + # ── 실험 관리 ──────────────────────────────────────────────── + t = _section("실험 관리") + t.add_row( "exp", - "실험 관리 [dim](fithia2 exp 로 상세 확인)[/]", - "create search tree info diff promote retire validate migrate", + "실험 메타데이터 관리 [dim](fithia2 exp 로 상세 확인)[/]", + "create search tree info diff promote retire validate migrate rebuild-index", ) - _console.print(table) + _console.print(t) _console.print( " [dim]공통 옵션:[/] [bold]--journal-dir[/] [dim](기본: journal/)[/]" @@ -1135,8 +1217,11 @@ def _print_help() -> None: ) _console.print(" [bold]예시[/]") _console.print(" [green]fithia2 leaderboard[/]") - _console.print(" [green]fithia2 record --experiment pead_v2 --hypothesis '...' --verdict better[/]") - _console.print(" [green]fithia2 paper[/]") + _console.print(" [green]fithia2 record -e pead_v2 -H '...' -v better[/]") + _console.print(" [green]fithia2 compute-sqs return_max_long_v7.119_composed_gld[/]") + _console.print(" [green]fithia2 overfit-check --config return_max_long_v7.119 --quick[/]") + _console.print(" [green]fithia2 paper status[/]") + _console.print(" [green]fithia2 refresh[/]") _console.print()