Trader Live Dashboard

Long-term equity advisor · Advisor mode · Pre-market refresh
📅 2026-08-27 Thu ✓ Pre-market 13:30 CEST 🎯 1 pending recs
NAV
$8,478.25
14 pos · 6.4% cash
Alpha YTD (od 2026-04-26)
-1.030pp
TWR +5.911% · SPY +6.945%
SPX last close
7,676
↓ -0.02% d/d · NDX +0.05%
Verified candidates
~46
cap 30 · cleanup gradual
Macro regime
Late-cycle reflation
Sentiment
NEUTRAL
AAII 35.5% · NAAIM None
📖 Jak czytać ten dashboard (klik aby rozwinąć) Glossary + scoring + colors

🎯 Scoring system (entry signals)

Każdy kandydat dostaje score 0-6 wg 6 niezależnych kryteriów. Im wyższy score, tym mocniejszy "kup" sygnał. Punkty można interpretować jako "ile znaków drogowych mówi 'idź'":

  • 5-6/6 🚀 STRONG — większość kryteriów aligned, high conviction setup
  • 4/6 ⚡ Entry zone — solid setup, worth manual review
  • 3/6 Watch — neutralny, czeka na confirmation
  • ≤2/6 — brak setupu, regular tracking

3 frameworki scoring (per typ aktywa):

  • US corporate (TSM, ACN): 6 kryteriów = cena 52W, RSI, insider buying, super-investor 13F, earnings beat, target raised
  • International corporate v3 (BATS.L, ISP.MI): full 6-pkt jeśli ADR mapping istnieje + dataroma ma realną super-investor coverage (≥1 owner) → score_max=6 (≥5 STRONG · ≥4 zone · ≥1 watch). Fallback 4-pkt (max 4/4) gdy no ADR mapping lub OTC pink ADR z 0 dataroma owners → Crit 3+4 strukturalnie unavailable. Crit 3 insider + Crit 4 super-investor auto-fetched z dataroma ADR (post-Lesson #6 v2 engineering fix 2026-05-03).
  • ETP macro v2 (4GLD, IUES.L, BIL): scoring na bazie macro signals (Fed, oil cycle, USD direction) — bo ETP nie mają earnings/insider. Country/Sector ETFs (EWJV/ENOR/EWS, SMH/CIBR.UK/XLE) używają generic relative-strength (3M vs SPY + regime proxy: VIX dla sektorów, DXY dla krajów) jako macro — sector/country-specific drivers (AI capex dla semis, oil supply dla energy, BOJ dla Japan) wymagają cycle-position check w weekly deep dive (portfolio.md:362-389), nie są w generic framework. Top-decile cycle = ⚠️ flag w dashboard.

🟢🟡🔵 Conviction tiers (advisor recommendations)

  • HIGH 🟢 — 2+ source triangulation + entry zone + super-investor signal + brak negatives. Najmocniejsze sygnały.
  • MEDIUM 🟡 — 1-2 sygnały, akcja zalecana ale poczekaj na timing/dolewkę
  • LOW 🔵 — speculative probe, małe wagi (1-3% NAV)

📦 Sleeves (kategorie portfela)

Portfel podzielony na sleeve = kategorię alokacji dla risk management:

  • Core / Quality — fundament, US large-cap mega-caps (MSFT, V, ACN)
  • Commodities — gold, silver, oil, copper, uranium (4GLD, IUES.L)
  • Tactical / Themes — semis, defense, gaming (TSM, NOC)
  • International — Europe / Japan / EM
  • Income / Defensive — utilities, REITs, MLPs
  • Cash — T-Bills (BIL/IB01), buffer

🌐 Macro & sentiment metryki — co znaczą

  • Fed Funds — stopa banku centralnego USA. ↓ = easing (good for stocks/gold), ↑ = tightening
  • 10Y / 2Y yield — rentowności obligacji 10/2 lat. 10Y-2Y spread: >0 = krzywa normal, <0 = inwersja (recesyjny sygnał)
  • HY OAS — premia ryzyka high-yield bonds. <3% = euforia kredytowa, >5% = stress
  • NFCI — Chicago Fed Financial Conditions Index. <0 = loose (risk-on), >0 = tight (stress)
  • VIX — wskaźnik strachu. <15 = complacency, 15-25 normal, >30 = panic
  • DXY — indeks dolara USA. ↓ = USD weakness (good for gold/EM/commodities)
  • AAII bullish % — % retail investorów bullish. >46% historycznie blisko top (kontrarian)
  • NAAIM exposure — ekspozycja institutional managers (0-100). >90 = max long
  • Core CPI YoY — inflacja core. Cel Fed 2.0%, >2.5% = sticky

📊 Factor attribution (Fama-French 5F)

Co "wygrało" w rynku akcji w ostatnich 12 miesiącach:

  • Mkt-RF = market return ponad risk-free rate (ile zarobił rynek)
  • SMB = small minus big (czy small-caps biły large-caps)
  • HML 💎 = high minus low book-to-market (czy value stocks biły growth)
  • RMW ⚠ = robust minus weak profitability (czy quality biło junk)
  • CMA = conservative minus aggressive investment (czy disciplined biło aggressive)

📊 Performance (TWR vs SPY)

  • TWR = Time-Weighted Return — neutralizuje timing wpłat (multi-period geometric chain). Standard pomiaru wydajności portfela vs benchmark.
  • SPY = S&P 500 ETF — nasz benchmark. Jeśli portfel +10% a SPY +15% → alpha −5pp.
  • Alpha = TWR − SPY. Cel: pobić SPY w 3-5 lat.

🔄 Pipeline lifecycle

Każdy kandydat na watchliście przechodzi przez stany:

  • needs_verification — świeży, czeka na sanity check
  • verified — przeszedł triangulację, gotowy do entry
  • promote_candidate — 2+ positive checks z rzędu, propose to Wave
  • drop — auto-drop (hard conditions) lub manual

Counter logic: 2 positive z rzędu → promote · 2 negative z rzędu → soft-drop proposal

📊 **Post-close 8/26: portfel −0,455% vs SPY +0,022% = alfa dzienna −0,478pp; alfa YTD −0,53pp → −1,03pp = drugie z rzędu rozszerzenie i najgorszy poziom od 8/12.** 🔑 **Ale konstrukcja tego rozszerzenia jest DOKŁADNYM ODWRÓCENIEM wczorajszego i to jest cała treść dnia:** 8/25 alfa rozeszła się, bo ruszył MIANOWNIK (SPY +0,320% przy stojącym TWR); dziś rozchodzi się, bo ruszył LICZNIK (TWR −0,455% przy SPY +0,022%). **SPY zmienił się o 17 CENTÓW — najmniejszy dzienny ruch indeksu w całym rejestrze — a IB01.L przy 36,72% NAV dołożył +0,000pp.** Obie strony równania stoją, więc **po raz pierwszy w sierpniu wyniku nie da się przypisać ani becie, ani hedge'owi: siedzi w całości w składzie książki.** NAV **$8 516,60 → $8 477,83**, przepływy $0. TWR YTD **+5,9113%** vs SPY YTD **+6,9451%**. 📌 **Cała ujemna strona dnia to TRZY nazwy o wadze 15,73% NAV** (INTU −0,175pp · UBER −0,123pp · MELI −0,117pp = **−0,415pp**); dodały MSFT +0,057pp · META +0,055pp · HIG +0,044pp · DECK +0,015pp. **4 z 14 pozycji nad indeksem, 4 z 14 na plusie = najwęższy rozkład od 8/17.** Suma wkładów na markach USD **−0,4465pp**; różnica do TWR **−0,0093pp to w całości FX na 4GLD.DE** (EUR 1,16795 → 1,16564) — uzgodnienie co do jednej setnej punktu. ⚖️ **Sesja odwróciła się wobec własnego otwarcia na OBU nazwach, które o 16:00 wyglądały na treść dnia — każda w inną stronę.** META: open snapshot notował **$566,45 (−0,63%)** po oddaniu całej luki +3,58% po ugodzie ~$16,68 mld z 29 stanami; **zamknięcie $576,14 = +1,07%** (dołek dnia $561,95, szczyt $593,27). INTU odwrotnie: o 16:00 **−4,12%**, zamknięcie **−3,24%**, ale **maksimum $351,39 padło w pierwszej godzinie i nie zostało odzyskane**. **Makro:** FRED dogonił publikację 8/25 po trzech runach na barze 8/24 — **2Y 4,17% (−7bp) · 10Y 4,64% (−6bp) · 30Y 5,17% (−6bp)**; **spread 10Y−2Y ROZSZERZYŁ się o 1bp do 47bp**, bo front zszedł głębiej niż długi koniec — **odwrócenie konstrukcji z 8/24**, gdzie cały ruch siedział w długim końcu. Zero inwersji. **VIX 15,21 (−1,55%) = najniższe zamknięcie od 8/13**, DXY **99,149 = pierwsze zamknięcie nad 99 od 8/12**. NFCI **−0,566 = szóste z rzędu rozluźnienie**. Żadna zmiana >1σ → brak wpisu External signals. **Sektory:** XLI +1,09% · XLK +0,61% · XLE +0,60% vs XLV −1,00% · XLY −0,67% · XLRE −0,60%; rozpiętość **2,09pp = pierwszy raz nad progiem 2% od 8/24**, przechył pro-cykliczny. **Bufor `ok` trzeci run z rzędu:** wolna gotówka $538,92 = **6,357% NAV**, zapas **+$115,03** — 📌 **urósł o $1,92 mimo ZERA operacji gotówkowych, bo NAV spadł o $38,82 i próg 5% zjechał**. W dniu straty bufor procentowo się POPRAWIA; jego komfortu nie należy czytać jako sygnału o kondycji książki. 🚨 **INTU — NAJSZERSZA FALA REWIZJI NA POJEDYNCZEJ POZYCJI W CAŁYM REJESTRZE: cztery akcje analityczne w jednym dniu, trzy to downgrade'y.** BofA **Buy → Neutral, PT $400 → $360 = −10,0%** (dokładnie na progu triggera #3) · JP Morgan **OW → Neutral, PT $331 = 4,3% PONIŻEJ zamknięcia** · Wolfe **OP → Peer Perform** · Oppenheimer utrzymał Outperform, ale PT $406 → $380 = −6,4%. **Szósty downgrade od 6/18 — fala nie zaczęła się dziś, tylko dziś przyspieszyła.** **Nośnik jest w dokumencie, nie w opinii:** guidance FY27 z 8-K — przychód **+9% do +10%** wobec FY26 **+14%**, **TurboTax +2% do +3%**, Mailchimp −1% do 0%; jedyny segment trzymający tempo to GBS +13-14%. 🔑 **I to jest znalezisko runu, ważniejsze od −0,478pp alfy: OBIE formalne bramy wyjścia stoją komfortowo, bo mierzą ZREALIZOWANE kwartały, a zepsuła się PROGNOZA.** `gate_a` marża TTM **27,5%** vs warn 20,0% (zapas 7,5pp); `gate_b` przychód FY26 **+14%** vs warn 8,0% — nie odpala, **ale guidance FY27 zjada 4/5 zapasu za jednym zamachem (6,0pp → 1,0-2,0pp)**, a **TurboTax +2-3% to teza dysrupcji z `risk_notes` wyrażona po raz pierwszy w LICZBIE, nie w narracji.** ⚖️ **To lustrzane odbicie problemu `B4` przy MECIE** (tam koniunkcja »miss AND cięcie guidance« nie widziała kompresji marży; tu brama na zrealizowanym przychodzie nie widzi deceleracji prowadzonej). **Do weekly 8/30: czy `gate_b` dostaje nogę forward.** Twardy termin: **Investor Day 9/17**. · 🕐 **NVDA po dzwonku pobiła WSZYSTKO, co było do pobicia — i spadła.** EPS non-GAAP **$2,22 vs $2,10 (+5,7%)** · przychód **$96,22 mld vs $92,17 mld (+4,4%), +106% r/r** · Data Center **$89 mld (+117% r/r) = 92% całej sprzedaży** · guidance Q3 **$108 mld ±2% vs $104,2 mld konsensusu (+3,6%), bez sprzedaży DC do Chin** — reakcja **−1,51% AH** ($210,18 → $207,00, pasmo $203,50-$211,50). **Podręcznikowe sell-the-news, a znaczenie dla tej książki jest pośrednie, ale realne: trzy pozycje AI-capex to 15,75% NAV** (MSFT 6,00 + META 5,16 + GOOG 4,59) i **są po stronie POPYTU na te chipy, nie podaży** — czyli read-through idzie przez **capex jako koszt**, nie przez sprzedaż. SMH **−0,75% AH**, MU **+0,38% AH**. ⚖️ **Czego to NIE rozstrzyga:** osiem barów posesyjnych to nie sesja. **Właścicielem rozstrzygnięcia jest pre-market 8/27**; dzisiejszy zapis mówi tylko tyle, że **guidance +3,6% nad konsensusem nie wystarczył** — a to informacja o wycenie oczekiwań, nie o popycie na AI. · 🟢 **BABA (watchlist) — KLASTER 3 ZAKUPÓW INSIDERSKICH NA OTWARTYM RYNKU W DWIE SESJE, łącznie $25,69 mln** (Tsai, Chairman: 720k sh @ $14,47 8/25 + 720k @ $14,29 8/24; Wu, CEO: 350k @ $14,24 8/24) = **jedyny klaster 3+ w oknie 5 sesji w całym sierpniu**. ⚖️ **Świadomie BEZ rekomendacji i to jest decyzja, nie przeoczenie:** zakupy padły **w ruchu W GÓRĘ** (Tsai dokupywał 1,6% drożej niż dzień wcześniej), więc jako trigger wejścia byłyby **pro-cykliczne** — META-RULE 2026-04-28 zamyka tę drogę wprost. **Jako noga potwierdzająca w scoringu 6-punktowym mają pełną wartość.** Do weekly 8/30. 📌 **Counter-cycle:** INTU założony jako **jedyny** aktywny blok `post_event_tracking` — session **1/7**, status **`borderline`**, cum **−3,24%**, RSI **55,51**, band raw **8,29%**. **Lesson #8a nie aplikuje** (VIX 15,21 <18, SPY 3d range 0,34pp <1,5% — 0 z 3 warunków). ⚠️ **Margines do `expired_no_entry` wynosi 0,24pp** — mniej niż jeden dzienny ruch tej nazwy w ostatnim tygodniu. Pełny raport: reports/2026-08-26_close.md · source: post-close-2026-08-26.
📡 Pre-market 2026-08-27 (Thu)

Today's brief 13:30 CEST · health ✅

🚨 Rozpiętość NQ↔YM wynosi 1,01pp i to jest najważniejsza liczba w tej tabeli. Dwa kontrakty rosną, dwa stoją pod kreską. To nie jest risk-on — to jest rajd jednego kompleksu przy nieruchomej reszcie rynku. Wczoraj o tej samej porze cztery kontrakty mieściły się w paśmie 0,25pp („…

🟢 Pre-market movers up

PANW+4,62% $355,00 · **Read-through z CRWD + OKTA** (*„Okta and CrowdStrike Stock…
MU+4,04% $976,36 · **Podwojenie zobowiązań zakupowych NVDA na pamięci** (*„MU, …
RHM.DE+3,88% €1 183,00 · Bar śródsesyjny XETRA vs rozlicz. 8/26 €1 138,80. Zero newsu…
CIBR.UK+3,72% $59,63 · Bar śródsesyjny vs rozlicz. 8/26 $57,49. **ETF cybersec — te…
SMH+2,64% $570,44 · Koszyk półprzewodnikowy na NVDA. Taśma **45/37 = wiarygodna*…
ACN+2,33% $185,60 · **Przejęcie COMWARE** (*„Accenture to Acquire COMWARE…"*, 8/…

🔴 Pre-market movers down

VIE.PA−2,86% €32,94 · Bar śródsesyjny Euronext vs rozlicz. 8/26 €33,91. Zero newsu…

📅 Earnings dziś

brak earnings dziś
⚡ Calendar / co obserwować: Czwartek 8/27 — 🚨🚨 START Jackson Hole („Financial Innovation: Implications for Payments and Policy", 8/27-29) · initial claims 14:30 CEST (konsensus ~206 tys.; ✅ źródło BLS dziś OK) · GDP Q2 II odczyt 14:30 CEST · print AAII (własność weekl · 8/28 Pt 14:30 CEST — 🚨 Core PCE lipiec (czerwiec 3,29%, próg regime-bearish 3,40%) — drugi dzień sympozjum · 9/1 Wt — monthly run · PANW Q4 FY26 AMC · 9/3 Czw — CPRT Q4 FY26 · ~session-7 `decision_gate` bloku INTU · ~9/4 Pt — NFP sierpień · ~9/11 CPI sierpień · 9/16-17 FOMC + dot plot · 9/17 INTU Investor Day
🎯 Flash recommendations: Brak catalyst trigger dziś — żadnej nowej rekomendacji. Aktualne pending: 1 (`HOLD-INTU-2026-08-26`, rec bez zlecenia — patrz KROK 7a).
🔍 Post-event counter-cycle queue

Counter-cycle candidates 1 active · 1 total

1 ticker(y) w post-event 7-sesyjnym oknie counter-cycle decision. . Każdy z tych tickerów MUSI być explicit ewaluowany w pre-market + post-close brief'cie (validator gate enforce'uje surface w sekcji 'Counter-cycle candidates flag').
TickerSessionLast closeCum %StatusDecision gateVerdict
INTU1/7345.88-3.24%borderlinesession-7PRE-MARKET 8/27 13:50 CEST — REFRESH BEZ INKREMENTACJI (KROK 4.5 pkt 1; sesja 2 domyka sie dzisiejszym zamknieciem, wlasciciel inkrementacji = post-close 8/27). last_close CARRY FORWARD $345.88 (US ticker); przedgielda $346.25 = +0.11%, tasma 37/25, rozpietosc 0.361% = PLASKA …
Lifecycle: active → borderline/viable/chase_dead → decision_deadline (session 7/7) → expired_no_entry / promoted_to_rec. Cleanup w weekly task. Validator gate: sekcja "Counter-cycle candidates flag" w pre-market/post-close report MUSI zawierać każdy active/borderline/viable/decision_deadline ticker (`validate_yaml.py`).
🎯 Aktywne rekomendacje · tryb doradcy

🎯 Propozycje doradcy 1 aktywnych

oczekuje decyzji czeka na sygnał wykonane odrzucone
Konkretne propozycje KUP / SPRZEDAJ / TRZYMAJ / TRIM od Claude'a. Każda ma wielkość, kategorię, poziom pewności (HIGH 🟢 / MEDIUM 🟡 / LOW 🔵), termin ważności i warunek wejścia. Najedź na warunek by zobaczyć pełen tekst.
StatusAkcjaTickerWielkośćKategoria PewnośćWażne doWarunek wejściaUzasadnienie
TRZYMAJ INTU 5.24% NAV Core/Quality MEDIUM 🟡 Investor Day **2026-09-17** LUB weekly **2026-0... Pre-market 8/27 13:50 CEST, eval WSZYSTKICH trzech sciezek + klauzu... INTU HOLD-with-stop MEDIUM. 3 downgrade'y w 1 sesji (BofA PT -10,0%, JPM PT $331 ponize...
📖 Słownik (statusy, poziomy pewności, akcje)
Statusy
  • oczekuje — wystawione, czeka na Twoją decyzję
  • czeka na sygnał — doradca rekomenduje wait do trigger touch
  • wykonane — pozycja otwarta/zamknięta
  • odrzucone — Twoje veto z powodem
  • wygasłe — minęła data ważności
  • 🔁 zastąpione — nowsza wersja istnieje
Poziom pewności
  • HIGH 🟢 2+ źródła + entry zone + super-investor + brak negative
  • MEDIUM 🟡 1-2 sygnały, akcja zalecana ale poczekaj na timing
  • LOW 🔵 spekulacyjne, małe wagi 1-3% NAV
Akcje
  • KUP — otwórz pozycję / dokup
  • SPRZEDAJ — zamknij pozycję
  • TRIM — częściowa sprzedaż
  • TRZYMAJ — bez zmian
🎯 Ticker selection hierarchy — dlaczego TEN ticker, nie inny

🎯 Ranked picks per thesis subsegment-driven

Gdy multiple tickerów ma same score (np. 9 energy 5/6 STRONG), selection hierarchy decyduje którego wybrać. Level 1: subsegment diversification (broad / services / supermajor / E&P / MLP / EM) — pickuj jednego z każdego. Level 2: tiebreaker (UCITS, TER, super-investors, insider). Level 3: risk profile match per Wave. Level 4: max 2-3 per thesis. Pełna canonical reference: portfolio.md.

🛢 Energy thesis (9 STRONG, ranked)

#TickerSubsegmentWaveStatusRationale
1⚡ IUES.LBroad ETF UCITSWave 1 ✅pickedDiversified anchor · TER 0.15% · UCITS Acc · USD-denom symetria z IB01
2OIHV.LOil services UCITSWave 2candidateDifferent subsegment (services capex leverage) · UCITS · TER 0.35%
3CVXSupermajor (quality)Wave 3candidateBuffett's energy stake = quality stamp · defensive blue-chip · #2 XLE holding
4EOGE&P shaleWave 3-4candidateYacktman + Nygren super-investors · low-cost producer · YTD +27%
5AMMidstream MLPWave 4candidateDividend ~6-7% income tilt · Kahn Brothers + Greenberg holds
6PBREM Energy valueWave 4+candidateP/E 6.9 deep value · governance + political risk balanced przez tier
HALOil services singleskipoverlapHAL = top OIHV.L holding (~25%) · OIHV.L już covers
XOMSupermajorskipoverlapOverlap z CVX · mniejszy super-investor signal niż CVX
ETMidstream MLPskipoverlapOverlap z AM · same subsegment, AM cleaner thesis (natgas focus)

🥇 Precious metals thesis (5 candidates, ranked)

#TickerSubsegmentWaveStatusRationale
1🥇 4GLD.DEPhysical gold ETCWave 1 ✅pickedNajtańszy gold w EU (TER ~0%) · physical-backed · EUR-denom currency hedge
2ISLN.UKPhysical silver ETCWave 2 conditionalcandidateDifferent metal · gold/silver pair · UCITS TER 0.20%
3NEMGold miner singleWave 3+candidateLeverage do gold spot 2-3x · First Eagle blessing · PEG 0.47
BGold/Cu hybridskipoverlapGold-dominant + copper · NEM cleaner pure-gold thesis
WPMSilver streaming corpskipoverlapOverlap z ISLN — corporate risk vs pure ETC, ISLN cleaner

⚙ Industrial metals thesis (3 candidates)

#TickerSubsegmentWaveStatusRationale
1COPXDiversified miners ETFWave 3candidatePure copper exposure · diversified miners · ETP 4/6
2VALEIron + EV materialsWave 3-4candidateEM exposure · 2 insider buys · Hybrid 2/4 + ETP 5/6 STRONG · cheap FwdP/E 8
RIODiversified miningskipoverlapOverlap z COPX (diversified) i VALE (iron+) — same subsegment combos
💡 Key insight: z 17 STRONG/entry zone tickerów we 3 commodity sleeves → realistycznie wystarczy 3-4 picks per thesis aby pokryć 80% exposure. Reszta = redundancy nie diversification. Anti-concentration cap (max 2-3 per thesis) wymusza tę selektywność.
📊 Sleeve allocation vs target — glide path

📊 Sleeve allocation vs target Late-cycle reflation · stage: TRIM regime

Wagi celowe (% NAV) per sleeve zależą od macro regime. Target ranges (low-high) z `portfolio.md` → "Sleeve targets" (YAML). Anti-concentration: max ±5pp od target → flag rebalance. Glide path: Wave 1 (now) → Wave 4 → steady state ($5-10k+ NAV).
Current weights computed live z `portfolio.md` "Pozycje otwarte" YAML blocks + free cash. Cash override (jeśli aktywny) flagowany w status column.
Sleeve Current % NAV Target range Δ vs target Status
Cash / Yield43.2%13.0-32.5% (base 10-25)+10.7pp over⚠ over cap +5pp — flag rebalance
Core / Quality31.0%22.5-31.5% (base 25-35)on targetOK
🥇 Precious metals9.4%5-10%on targetOK
🛢 Energy3.6%5.0-7.5% (base 10-15)−1.4pp underunderweight
⚙ Industrial metals1.9%2.5-5.0% (base 5-10)−0.6pp underunderweight
⚛ Uranium0.0%0.0-3.5% (base 0-5)on targetOK
Tactical / Themes7.0%7.0-14.0% (base 10-20)on targetOK
International0.0%0-5%on targetOK
Income / Defensive3.8%6.5-13.0% (base 5-10)−2.7pp underunderweight
Glide path Waves (z `portfolio.md` "Glide path" YAML): Wave 1 (now) → Wave 2 (po weekly trigger) → Wave 3 (po monthly trigger) → Wave 4 → steady state.
💡 Anti-concentration rule: max 2-3 pozycje per macro thesis. Sleeve cap +5pp tolerated; over → flag rebalance w next weekly/monthly.
Catalysts & trigger watch

🎯 Conditional triggers 9 total · ✅ 1 · 📍 1

Triggery z catalysts.md "Conditional / Thesis triggers" — każdy z live current value + status: ✅ TRIGGERED (wystaw rec) · 📍 CLOSE (within 10% threshold) · ⏸ FAR (>20% off). Aktualizowane przy każdym dashboard rebuild.
Trigger / Akcja jeśli aktywujeCurrentStatusPozycja
WTI cofnięcie ≥15% OD LOKALNEGO SZCZYTU do strefy $78-82 + RSI(14) WTI <40 (przepisany weekly 2026-07-19)
→ Add OIHV.L Wave 2 (oil-services subsegment; IUES.L już @ 4.00% NAV target = leg skonsumowany)
WTI $82.43 📍 close (within 10%) watching (OIHV.L)
WTI hold >$90 + VIX rising 4+ tyg
→ Re-eval energy sleeve pod kątem regime shift (NIE automatyczny BUY)
WTI $82 ✗ · VIX 15.0 (4-tyg falling -6.1%, thr ≥+5%) ✗ ⏸ far (both conditions fail) watching
Gold pullback do $3,470-3,800 + RSI <40
→ Upgrade 4GLD.DE MEDIUM_probe → BUY MEDIUM full + DCA do target $520 (6.5% × NAV $8k; sizing recal post-inj#5 — NIE stale $260 ref pre-inj)
Gold $4,652 · 4GLD RSI 66.2 ⏸ far (+22% above zone RSI ✗<40) deferred (next escalation)
INTU T3 — AI-adaptation evidence (Q4 FY26 ~Aug) OR 13F ADD 8/14
→ Add INTU DCA T3 (~$120 / +1.5% → 5% target)
$346 ✗ · RSI 55.7 ✗ ⏸ far (AND not met) held (INTU T1+T2 filled)
Silver <$60 lub G/S ratio >70
→ Promote ISLN.UK watching → BUY
Promote ISLN.UK watching → BUY ✅ TRIGGERED (historical fire — see action column) 🔥 FIRED 2026-06-24 (silver $59.53 <$60) → PROMOTED → ⏳ Active BUY rec
🧹 ~~AAII bullish <40% AND NAAIM exposure <80~~ — WYGASZONY 2026-08-09
→ ⛔ USUNIĘTY Z ACTIVE decyzją Dawida (action #120). Dwa niezależne, każde wystarczające uzasadnienie. (1) Noga NAAIM nie dyskryminowała — backtest 1046 tygodni (2006-07 → 2026-07): mediana forward SPX przy NAAIM<80 vs ≥80 to +0,61 / +0,96 / −0,15 / +0,68pp na 4/13/26/52 tyg, ze zmianą znaku, a odsetek dodatnich zwrotów był WYŻSZY po stronie ≥80 na każdym horyzoncie. Do tego próg 80 leżał na 63,5 percentyla serii — opisywał stan typowy, nie ekstremum; wydawał się wiążący tylko dlatego, że ostatni rok chodził gorąco (mediana 86,56). (2) Akcja triggera już nie istniała: miał rozluźniać `cash_policy_override`, a override wygasł 2026-07-30 — przez dziesięć dni był to warunek bez konsekwencji, działający w praktyce już tylko jako blokada zakupów, której nikt ponownie nie autoryzował. Co zostaje: AAII i CFTC Asset Managers net %OI jako odczyty kontekstowe w crowded-count (próg CFTC percentylowy: >75 pct 5Y, nie liczbowy — to wprost naprawa błędu progu 80). Realna brama zostaje tam, gdzie i tak była wiążąca przez pięć tygodni: Rule #4 + Crit 7 + sygnały per kandydat.
AAII 35.5% · CFTC AssetMgr +46.4%OI = 78 pct 5Y 🧹 WYGASZONY jako brama — odczyt kontekstowy — (skreślony)
SPY -5-10% pullback
→ ACN value entry zone aktywuje się
-1.71% z 60d high ⏸ far (no pullback) deferred
VIX spike >25 sustained
→ Pause new entries · trim defensive sleeve flag
15.02 ⏸ far global
🧹 TTD — brama tezy Q2 8/6 (monthly 2026-08-01)
→ ⛔ ROZSTRZYGNIĘTA NA NIE 2026-08-09 → USUNIĘTA z active. Guidance Q3 ≥$650 mln vs konsensus $804 mln = −19,2%, i −12% r/r; Q2 przychód $715 mln = 4,7% pod dolną krawędzią własnej prognozy zarządu (≥$750 mln), adj. EPS $0,34 vs $0,40. Warunek (a) wymagał „przychód r/r dodatni ORAZ guidance nie poniżej konsensusu" — druga noga fail. Blok `post_event_tracking` zamknięty (`expired_no_entry` / `terminal_reason: thesis_broken`), soft-drop zaproponowany do monthly 9/1. Zero ekspozycji, zero rekomendacji, zero kosztu
⏸ unknown — (skreślony)

📅 Top events (next 7d) 6 ticker · 8 macro

Top 5 nadchodzących events z catalysts.md "Ten tydzień" — filtered dla portfolio + deferred + watching pipeline. Pełna lista: catalysts.md.
DataTicker / EventPozycja
8/28 Pt 8:30 ET 🚨 Core PCE lipiec — Inflacja — miara preferowana Fed, dzień PO otwarciu sympozjum
Cały tydzień 🚨 Energy — flaga Rule #4 PRZYWRÓCONA (nowe) — Framework — zakres restricted watching (OIHV.L), IUES.L (held)
8/27 Czw 8:30 ET Initial claims · GDP Q2 II odczyt · AAII print — Praca + wzrost + sentyment
8/27-29 Czw-Sob 🚨🚨 Jackson Hole — sympozjum Fed (Jackson Lake Lodge; temat: „Financial Innovation: Implications for Payments and Policy”) — NAJWIĘKSZY nośnik ryzyka reżimowego w oknie
8/28 Pt Personal income + spending lipiec — Konsument
Last refresh: **2026-08-23 (weekly run)**. Auto-updated each weekly + mont · Auto-refresh przy weekly (Sun 20:00 CEST) + monthly run.
Stan portfela & performance

💼 Portfolio NAV $8,478.25

Aktualny stan portfela. NAV (Net Asset Value) = wartość portfela = cash + pozycje po current price. Wszystkie wagi (% NAV) liczone proporcjonalnie do tego.
NAV$8,478.25
Otwarte pozycje14
Allocated$7,939.33 · 93.6%
Free cash$538.92 · 6.4%
Cash flow ledger+$4,000 contributed (2 deposits)

📈 Performance (TWR) cumulative + live SPY

Wydajność portfela vs benchmark SPY (S&P 500). Cumulative rows (od 2026-04-26) parsed z performance.md ## YTD section (TWR sub-period method neutralizes cash flows). SPY 1d/WTD/1m/1Y rows pulled live z yfinance per build. Alpha YTD = TWR YTD − SPY YTD (cumulative; main metric). Alpha 1d = MTM mark-to-market vs SPY 1d (daily snapshot, mixed timeframe — limited semantic).
TWR YTD (od 2026-04-26)+5.911%
SPY YTD (od 2026-04-26)+6.945%
🎯 Alpha YTD (cumulative)-1.030pp
— Daily snapshot (mixed timeframe, limited) —
MTM vs cost basis+5.16%
SPY 1d+0.02%
Alpha (1d snapshot)+5.14pp
— SPY benchmark context —
SPY close (2026-08-26)$766.08
SPY WTD (5d)-0.39%
SPY 1m+3.40%
SPY 1Y+19.79%
Pozycje · Win rate14 pos · live (1d) · n/d (0 trades)
Cumulative TWR YTD + Alpha YTD parsed z performance.md (refreshed by post-close + weekly). SPY rows live z yfinance per build. Pełen daily NAV history → chain geometric TWR planowany Wave 2.

🧠 Sentiment regime macro.md

Jak inwestorzy postrzegają rynek. Często kontrarian — max bullish historycznie blisko top, max bearish blisko bottom. Klasyfikacja: panic → fear → neutral → optimism → euphoria. Wartości z `macro.md` "Current snapshot" YAML.
NEUTRAL
AAII bullish35.5%
NAAIM exposureNone
FINRA margin debt$1.417T -5.65%
Konsument UMich49.5
Source: `macro.md` "Current snapshot" sentiment_indicators block (refreshed weekly + monthly). Caveat: AAII top decile historycznie często poprzedza krótkoterminowy pullback.

📊 Otwarte pozycje 14 pos · $538.92 free cash

Aktualne pozycje w portfelu (z portfolio.md "Pozycje otwarte"). Cost basis = ilość × cena wejścia. Live = ostatni close 15m bar z yfinance (best-effort, "—" jeśli offline). P/L = (live − entry) / entry. Free cash to dry powder dla confirming-signal-triggered DCA — patrz portfolio.md "Cash policy override" dla rationale current sizing'u.
TickerKierunekIlośćCena wej. LiveP/L Cost basisData wej.Teza
IB01.L LONG 25.71 $120.26 $121.66 +1.17% ($+36.03) $3,091.62 2026-04-27 Pseudo-cash w yield-bearing T-Bills 0-1Y UCITS — XTB nie płaci odsetek na free cash USD. Hedge na pullback (sell IB01 → buy quality tanie...
GEHC LONG 5.71 $63.01 $73.32 +16.35% ($+58.84) $359.78 2026-05-07 GE HealthCare Technologies — dominantny franchise medical imaging (MRI/CT/ultrasound/X-ray) post-spinout z GE 2023. Counter-cycle quality...
META LONG 0.77 $594.85 $576.11 -3.15% ($-14.45) $458.69 2026-05-11 Mega-cap quality compounder z thesis-confirming Q1 +56.79% EPS BEAT ($10.44 vs $6.66 est) ALE post-Q1 capitulation -10% z forward guidanc...
MELI LONG 0.21 $1560.00 $1950.57 +25.04% ($+83.66) $334.16 2026-05-18 Mercado Libre — dominantny franchise LATAM e-commerce + fintech (Mercado Pago/Envios) operations Argentina/Brazil/Mexico. Counter-cycle e...
⚡ IUES.L LONG 23.58 $11.89 $13.10 +10.18% ($+28.53) $280.33 2026-05-27 iShares S&P 500 Energy Sector UCITS ETF (Acc, LSE listing, USD-denominated, TER 0.15%) — same exposure jak US XLE (XOM, CVX, EOG, COP top...
🥇 4GLD.DE LONG 2.83 €121.62 €126.99 +4.41% (€+15.19) $401.22 2026-05-28 Xetra-Gold ETC (4GLD.DE) — physical-backed gold w niemieckim depo, **TER ~0% (najtaniej w EU)**. Tier I instrument w XTB EUR base currenc...
UBER LONG 5.63 $72.02 $78.48 +8.97% ($+36.39) $405.75 2026-06-01 Uber Technologies — counter-cycle deep-oversold laggard. -31% off 52W high $102 na przesadzonym/powolnym strachu przed robotaxi/AV, podcz...
HIG LONG 2.31 $133.25 $139.85 +4.95% ($+15.24) $307.71 2026-06-01 The Hartford Financial — counter-cycle defensive value insurer. RSI sub-30 oversold + P/E 8.95 cheap + ROE 20.3% po Q1 miss derating; com...
INTU LONG 1.28 $343.04 $345.72 +0.78% ($+3.44) $440.43 2026-06-01 Intuit — wide-moat fintech software (TurboTax/QuickBooks/Credit Karma/Mailchimp), discovery scan najsilniejszy 2-source candidate (QV + 1...
GOOG LONG 1.15 $348.62 $339.08 -2.74% ($-10.95) $400.04 2026-06-02 Alphabet — wide-moat search/cloud/YouTube + Gemini AI. **PROMOTED z watch list** (RSI cooldown <50 OR-trigger MET, Dawid catch Lesson #14...
MSFT LONG 1.04 $384.51 $496.17 +29.04% ($+116.12) $399.85 2026-06-15 Microsoft — mega-cap wide-moat quality compounder (Azure cloud, Copilot/OpenAI, M365, gaming). Counter-cycle entry: genuine -30% drawdown...
🥈 ISLN.UK LONG 5.77 $55.43 $65.05 +17.36% ($+55.54) $319.94 2026-06-24 iShares Physical Silver ETC, ISIN IE00B4NCWG09, LSE, USD-denom, TER 0.20%, physical-backed. **Counter-cycle catch-up probe** — promote_tr...
VALE LONG 10.58 $15.12 $15.17 +0.33% ($+0.53) $160.00 2026-07-02 Vale S.A. ADR (VALE.US) — brazylijski producent rudy żelaza + base metals (nickel/copper). **Counter-cycle industrial-metals entry** (Ind...
DECK LONG 1.71 $95.76 $89.47 -6.57% ($-10.77) $163.99 2026-08-10 Deckers Outdoor (DECK.US) — mid-cap apparel/footwear ($13.1 mld mcap): **HOKA** (running), **UGG** (sheepskin), **Teva** (sandały). **Cou...
Allocated: $7,939.33 (93.6% NAV) · Free cash: $538.92 (6.4% NAV) · Total NAV: $8,478.25.
Macro & factor regime

🌐 Macro regime FRED 4Y

Co się dzieje w gospodarce — kluczowe wskaźniki. Late-cycle reflation = późny cykl + powrót inflacji + Fed easing. Sprzyja: commodities, energy, EM. Niebezpieczne: stagflation pivot. Threshold: 10Y-2Y >0 = krzywa normal · HY OAS <3% = euforia kredytowa · VIX <20 = complacency · DXY <100 = USD weak.
ReżimLate-cycle reflation
Cycle stage🟡 Trim (reduce cyclical, increase defensive)
Fed Funds3.63% easing cycle
Core CPI YoY+2.47% YoY
Core PCE YoY+3.29% YoY Fed's preferred
10Y / 2Y / 3M4.64 / 4.17 / 3.86 stable
10Y-2Y spread+47 bp dis-inverted
VIX14.94 calm
HY OAS2.7% tight
NFCI-0.566 loose
DXY · Gold · WTI99.149 · $4598.2 · $82.23 reflation
Silver · Copper · NatGas$67.99 · $6.5945 · $2.842
Unemployment · claims4.1% · 206k

📊 Factor attribution FF 5F · 12m → 2026-05-31

Co "wygrało" w rynku akcji w ostatnich 12 mies (Fama-French 5-Factor model). HML 💎 = czy value > growth. RMW = czy quality > junk. Jeśli nasz portfel jest quality+value bias, dodatnie HML/RMW = tailwind. Wartości z `macro.md` "Current snapshot" YAML — refreshed monthly.
Mkt-RF
+23.06%
SMB
+4.42%
HML 💎
+10.66%
RMW ⚠
-21.16%
CMA
-2.36%
Value > growth (HML +10.66%) wspiera quality+value bias. RMW -21.16% = junk > quality, headwind dla pure quality compounders.
Entry signals (top candidates)

🚀 Entry signal scoring · 2026-08-23 v2 multi-framework · US/INTL/ETP

Każdy kandydat z watchlisty dostaje score 0-6 (im wyżej, tym mocniejszy "kup" sygnał). Kolumny: Licznik = positive/negative counter — 2 positive z rzędu → promote (BUY proposal w monthly), 2 negative → soft-drop · RSI <40 = oversold · −52W = jak daleko od 52W high · Insider = count buys 30d lub net Trans % · Beat = Q-earnings beat consensus. Score badges: 5-6/6 STRONG 4/6 Entry zone 3/6 Watch. Hybrid scoring (singles): "2/4 +ETP 5/6" = US corporate scoring + macro framework alignment combined.
Ticker Klasa Score Licznik RSI −52W Insider Beat Główne sygnały Kontekst
🚀 STRONG signal (≥5/6) — najmocniejsze setupy
COPXIndustrial metals5/6 ⚙️🚀0/071-5.4%off-highcopper cycle setup · ▼ proposed drop
⚡ Entry zone — solid setup, manual review zalecany
BATS.LIncome/Defensive4/6 🌍⚡2/0 ↑37-23.0%0 buysRSI oversold · super-inv · beat · target↑
CIBR.UKTactical4/6 ⚙️⚡0/048-8.7%off-highWave 3+ — po wave 2 fill; jeśli wchodzimy → wycofać PAN...
ETEnergy4/6 ⚡2/0 ↑62-2.1%5 buysoff-high · insider+ · beat · target↑Holders: Tepper · dowolny
EWSIncome/Defensive4/6 ⚙️⚡0/066-0.8%off-highdowolny
GEHCCore/Quality4/6 ⚡2/0 ↑66-16.7%8 buysinsider+ · super-inv · beat · target↑Counter-cycle entry — execute jeśli (a) GEHC pullback d...
INTUCore/Quality4/6 ⚡2/0 ↑68-47.9%2 buysinsider+ · super-inv · beat · target↑Holders: 11 dataroma owners · see recommendations.md → ...
IUES.LEnergy4/6 ⚙️⚡0/069-1.5%off-highsee recommendations.md → BUY-IUES.L-2026-04-26 (3 condi...
METACore/Quality4/6 ⚡1/039-30.5%0 buysRSI oversold · super-inv · beat · target↑Holders: ValueAct, Dorsey · RESOLVED — promoted to form...
MSFTCore/Quality4/6 ⚡1/062-12.7%1 buysinsider+ · super-inv · beat · target↑see recommendations.md → BUY-MSFT-2026-06-14 (counter-c...
UBERTactical4/6 ⚡2/0 ↑62-22.7%2 buysinsider+ · super-inv · beat · target↑Q1 earnings May 6 beat + AV/robotaxi adaptation evidenc...
VCore/Quality4/6 ⚡1/061-0.8%0 buysoff-high · super-inv · beat · target↑Holders: Akre, Smith, ValueAct · dowolny
WMCore/Quality4/6 ⚡2/0 ↑42-9.7%1 buysoff-high · insider+ · beat · target↑dowolny
WPMPrecious metals4/6 ⚡1/079-4.8%0 buysoff-high · super-inv · beat · target↑silver thesis
👀 Watch (3/6) — neutralny, czeka na confirmation
4GLD.DEPrecious metals3/6 ⚙️0/070-14.9%confirming signal: pullback do $3,500-3,800 + RSI &lt;4...
DECKTactical3/60/041-26.9%0 buyssuper-inv · beat · target↑**GATED — wejście przeniesione do `recommendations.md` ...
EWJVInternational3/6 ⚙️0/055-2.2%off-highdowolny
EXEEnergy3/60/058-24.1%6 buysinsider+ · beat · target↑counter-cycle oversold entry — NIE BUY teraz (RSI 50.5 ...
HIGIncome/Defensive3/60/042-6.8%0 buysoff-high · beat · target↑Holders: Pzena · jeśli CB nie kupisz
MELICore/Quality3/60/059-24.6%3 buysinsider+ · beat · target↑po sanity Q-earnings
MUDiscovery3/60/054-23.0%2 buysinsider+ · beat · target↑Holders: Tepper · high vol — wait dla earnings confirmation
NOCTactical3/60/046-28.8%0 buyssuper-inv · beat · target↑Holders: Yacktman, Torray · WATCH-ONLY do triple confir...
OIHV.LEnergy3/6 ⚙️0/059-10.2%po energy thesis confirmation
PANWTactical3/60/052-10.3%1 buysinsider+ · super-inv · beatHolders: Mairs, Nygren
PBREnergy3/60/061-13.9%1 buysinsider+ · beat · target↑value tilt
SAPCore/Quality3/60/076-22.3%0 buyssuper-inv · beat · target↑dowolny po Q1 mixed → wait for Q2 reconfirm
TSMTactical3/60/050-12.5%86 buysinsider+ · beat · target↑Holders: Tepper, Coleman, Mandel · BUY rec ⏰ EXPIRED 20...
⏸ Macro thesis active, technical not yet ripe (2/6 — czekaj)
EOGEnergy2/60/166-0.4%0 buysoff-high · beatHolders: Yacktman, Nygren · dowolny
ISLN.UKPrecious metals2/6 ⚙️0/066-42.9%see recommendations.md → BUY-ISLN.UK-2026-04-26 (3 cond...
ISP.MIIncome/Defensive2/6 🌍2/0 ↑59-2.4%0 buysoff-high · beat
RHM.DETactical2/6 🌍2/0 ↑54-42.5%beat · target↑
⚠ Proposed soft-drop (counter -1 negative)
BLKCore/Quality3/60/2 ↓60-5.2%0 buysoff-high · beat · target↑Holders: ValueAct, Nygren · ▼ proposed drop
ENOREnergy3/6 ⚙️0/073-3.6%off-highdowolny · ▼ proposed drop
SWIncome/Defensive3/60/2 ↓57-6.2%0 buysoff-high · beat · target↑Holders: Ketterer · ▼ proposed drop
VIE.PAIncome/Defensive3/6 🌍2/0 ↑39-9.5%0 buysoff-high · RSI oversold · target↑▼ proposed drop
CBIncome/Defensive2/60/2 ↓44-6.8%0 buysoff-high · beatHolders: Buffett, Davis, Olstein · WAIT — counter-cycle...
CCJUranium2/60/2 ↓62-24.2%0 buysbeat · target↑uranium thesis · ▼ proposed drop
CNICore/Quality2/60/2 ↓64-1.3%0 buysoff-high · beatHolders: Watsa · ▼ proposed drop
CPRTTactical2/60/2 ↓70-32.5%0 buysbeat · target↑Re-entry wymaga POTWIERDZONEJ akumulacji (sama tania wy...
CVXEnergy2/60/2 ↓69-4.4%0 buysoff-high · beatHolders: Buffett · dowolny · ▼ proposed drop
GOOGCore/Quality2/60/2 ↓46-15.5%0 buysbeat · target↑Holders: Li Lu, Tepper · dowolny · ▼ proposed drop
HALEnergy2/60/2 ↓59-18.9%0 buysbeat · target↑Holders: Pzena · dowolny — services subsegment · ▼ prop...
NEMPrecious metals2/60/2 ↓76-2.4%0 buysoff-high · beatHolders: First Eagle · gold cycle setup (hybrid 2/4 + E...
PGRIncome/Defensive2/60/2 ↓57-12.2%0 buyssuper-inv · beatWAIT — value-trap test FAILS (EPS5Y -4.04% AND P/E 10.3...
RIOIndustrial metals2/60/2 ↓66-6.5%0 buysoff-high · beatHolders: Dodge &amp; Cox · dowolny · ▼ proposed drop
SFMCore/Quality2/60/2 ↓49-44.9%0 buysbeat · target↑▼ proposed drop
TTDTactical2/60/2 ↓32-76.6%3 buysRSI oversold · insider+Brak — kandydat obserwacyjny, NIE rekomendacja. Wejście...
ACNCore/Quality1/60/2 ↓67-36.3%0 buysbeatconfirming signal: Q-beat-and-raise OR ≥1 insider Form ...
SMHTactical1/6 ⚙️0/047-16.6%semi cycle confirm (lub jako anchor tech) · ▼ proposed drop
Czytanie tabeli: sortowanie sekcjami od najsilniejszego (STRONG ≥5/6) do soft-drop. Każdy ticker raz, w swojej primary klasyfikacji. Hybrid score (np. CCJ "2/4 + ETP 3/6") = ticker scored przez oba frameworki — finviz US corporate AND macro ETP. Pokazujemy oba bo single stocks z commodity exposure mają both lenses.
Rate-sensitive equities (NEE/AWK/WTRG/CB/HIG) = single stocks z makro tailwind od Fed/yield curve. Hybrid scoring: finviz (US corporate signals — RSI, beat, insider) + ETP rate_sensitive (macro alignment). Krytyczna nota dla NEE: NIE jest pure regulated utility — growth utility z secondary thesis (AI datacenter power demand, Florida demographic expansion). Macro tailwind jest reinforcement, ale corporate growth story jest separate. Tier 3 ETP scoring 6 criteria: Crit 1 cena 52W · Crit 2 RSI · Crit 3 macro alignment (Fed Funds <4% ✓, 10Y yield falling, curve steepening ✓; ≥2 z 3 = 1pt) · Crit 4 momentum (10Y direction) · Crit 5 vol fit (VIX >20 = good) · Crit 6 USD direction.
Pełna watchlist per sleeve · ~46 verified

📋 Watchlist 46 tickets · cap 30 · sortowane per priorytet

Watchlist = lista kandydatów do obserwacji, NIE obowiązek kupna. Pogrupowane per sleeve (kategoria alokacji portfela). Liczby per sleeve = ile kandydatów w tej kategorii. Soft cap: max 30 verified (forces selectivity); aktualnie ~46 = nadwyżka, gradual cleanup w monthly tasks.
Kolejność tickerów per sleeve: 🚀 strong signal (≥3/4) → ★ NEW monthly → ⚡ entry zone (2/4) → standard verified → international → ▼ proposed soft-drop. Sleeves też posortowane: Core → Commodities → Tactical → Discovery → Income → International → EM → Cash.
Core / Quality ⚡6▼5 13
1GEHC 4/6 ⚡2INTU 4/6 ⚡3META 4/6 ⚡4MSFT 4/6 ⚡5V 4/6 ⚡6WM 4/6 ⚡7MELI 3/68SAP 3/6BLKCNIGOOGSFMACN
6 entry zone: GEHC, INTU, META, MSFT, V, WM · ▼ proposed soft-drops: BLK, CNI, GOOG, SFM, ACN
🥇 Precious metals (insurance) ⚡1▼1 4
1WPM 4/6 ⚡24GLD.DE 3/6 ⚙️3ISLN.UK 2/6 ⚙️NEM
1 entry zone: WPM · ▼ proposed soft-drops: NEM
🛢 Energy (cycle bet) ⚡1▼3 8
1IUES.L 4/6 ⚙️⚡2EXE 3/63OIHV.L 3/6 ⚙️4PBR 3/65EOG 2/6ENORCVXHAL
1 entry zone: IUES.L · ▼ proposed soft-drops: ENOR, CVX, HAL
⚙ Industrial metals (cycle bet) ✅1▼2 3
✅ VALECOPXRIO
1 held: VALE · ▼ proposed soft-drops: COPX, RIO
⚛ Uranium (thematic) ▼1 1
CCJ
▼ proposed soft-drops: CCJ
Tactical / Themes ⚡2▼3 10
1CIBR.UK 4/6 ⚙️⚡2UBER 4/6 ⚡3DECK 3/64NOC 3/65PANW 3/66TSM 3/67RHM.DE 2/6 🌍CPRTTTDSMH
2 entry zone: CIBR.UK, UBER · ▼ proposed soft-drops: CPRT, TTD, SMH
Discovery — Insurance & Biotech 1
1MU 3/6
1 verified — regular tracking.
Income / Defensive ⚡3▼4 9
1BATS.L 4/6 🌍⚡2ET 4/6 ⚡3EWS 4/6 ⚙️⚡4HIG 3/65ISP.MI 2/6 🌍SWVIE.PACBPGR
3 entry zone: BATS.L, ET, EWS · ▼ proposed soft-drops: SW, VIE.PA, CB, PGR
International 1
1EWJV 3/6 ⚙️
1 verified — regular tracking.
Cash / Defensive ✅1 1
✅ IB01.L (50% NAV)
1 held: IB01.L (50% NAV)
verified standard strong signal ≥5/6 entry zone 4/6 NEW monthly promote_candidate proposed soft-drop italic = international UCITS (kept dla XTB EU access tagging)
Scoring framework v2 (od 2026-04-26): US corporate (finviz 6-crit) → INTL corporate (yfinance + ADR mapping, np. BATS.L→BTI) → ETP (macro-based per type: gold/silver/oil/copper/uranium/t-bills/country/sector/USD/PL-bonds). Italic nie znaczy już "poza scope" — wszystkie tickery dostają teraz scoring.
Pipeline lifecycle & discovery

🔄 Watchlist counter post-monthly

Pipeline lifecycle workflow. Każdy kandydat ma counter positive/negative: 2 positive z rzędu → promote (Wave candidate); 2 negative → propose drop. Scoring: positive = insider buy / earnings beat / super-investor add; negative = insider sell cluster / margin compression / super-investor exit.
Active verified46
positive_check (META)1 / 0 score 4/6
positive_check (MSFT)1 / 0 score 4/6
positive_check (V)1 / 0 score 4/6
positive_check (WPM)1 / 0 score 4/6
Promotions ↑9 INTU, WM, GEHC
Auto-drops 🔴0 no hard triggers
Soft-drops proposed19 −1 negative
Stale flags0 skipped — nie 1.Q-day
Next stale review2026-07-01 Q3

⚠️ Proposed soft-drops size-cap

Kandydaci z YAML soft_drop_proposed: true. Powody: 0 super-investor support, overlap z lepszym tickerem, anti-concentration (sleeve full), thesis breach. Confirmation w kolejnym monthly (2026-06).
TickerSleevePowód / score
ACNCore/QualityCounter reset 2026-08-01 (false alarm — dane przeczą dropowi): super-inwestorzy **net +3** (3 new + 4 add vs 4 reduce, 12 właścicieli) mimo złamanej tezy (cięcie guidance Q3 6/18, −43% od szczytu). BUY zablokowany dyskwalifikatorem #2: **EPS5Y 6.80% przy P/E 13.25**; target tylko +5.7%. Trzymamy na liście jako obserwację odbudowy, nie kandydata. · 1/6
SMHTacticalSize cap drop 2026-08-01: score 2, ETF półprzewodnikowy dublujący pojedyncze nazwy w tym samym rękawie (TSM promote_candidate, MU promote_candidate). Ekspozycja koszykowa obok dwóch pojedynczych zakładów na ten sam cykl = trzeci zakład na to samo. · 1/6
CBIncome/DefensiveDOWNGRADED 2026-04-28 v3 — disqualifier #1 (inside · 2/6
CCJUraniumCounter reset 2026-08-01 (false alarm): **RSI 38.89 = jedyny prawdziwie wyprzedany ticker w całym przeglądzie**, −36.1% od szczytu 52W, recMean **1.39**, target **+51.3%**, insider 0.00% (brak dystrybucji). BUY nadal zablokowany wyceną — **fPE 46.28** — ale to argument przeciw kupnu, nie za skreśleniem. 🔧 Naprawiono uszkodzoną wartość pola (`true`**` → `true`/`false`). · 2/6
CNICore/QualityGates Fdn + Prem Watsa hold, defensywny moat · 2/6
CPRTTacticalCopart — auto salvage auction monopoly, ROIC 16%, · 2/6
CVXEnergyCounter reset 2026-08-01 (false alarm): super-inwestorzy net **0** (2 new + 3 add vs 5 reduce) — to nie jest dystrybucja, tylko rotacja; recMean **1.69 buy**, target +9.2%, a sleeve Energy siedzi **4.08% NAV wobec efektywnego targetu 5.0-7.5% = pod targetem**. Blokuje BUY wyłącznie cena: RSI 67.1 przy −8.3% od szczytu po rajdzie WTI +23.5% m/m = kupno na sile. · 2/6
GOOGCore/QualityCounter reset 2026-08-01: **pozycja otwarta w portfelu** (4.98% NAV, DCA T1+T2 zakończone) — soft-drop z listy obserwacyjnej nie ma zastosowania do tickera, którym rządzi `portfolio.md`. Licznik negatywny wyzerowany jako artefakt podwójnego zapisu; dyscyplina wyjścia żyje w bloku pozycji, nie tutaj. · 2/6
HALEnergyHalliburton — Pzena holds. Hybrid 2/4 + ETP 5/6 ST · 2/6
NEMPrecious metalsSize cap drop 2026-08-01: score 2, super-inwestorzy net −3 (3 redukcje, 0 dodań). Precious metals pokryte fizycznie przez 4GLD.DE + ISLN.UK (8.32% NAV = pełny target 5-10%); ekspozycja przez kopalnie jest dokładką do tej samej tezy. · 2/6
PGRIncome/DefensiveCounter reset 2026-08-01 (false alarm — dane przeczą dropowi): super-inwestorzy **net +2** (1 new + 3 add vs 2 reduce) = akumulacja, RSI 46.9, −17.1% od szczytu. BUY zablokowany dyskwalifikatorem #2: **EPS5Y −3.91% przy P/E 10.60** (wzrost ujemny + niski mnożnik = klasyczny profil pułapki wartości) + recMean 2.62 + target +10.2%. · 2/6
RIOIndustrial metalsSize cap drop 2026-08-01: score 2, ten sam subsegment co VALE (ruda żelaza) przy rękawie o targecie 2.5-5.0% i jednej otwartej pozycji. Zostaje VALE — ma net-ADD i insiderów kupujących. · 2/6
SFMCore/QualitySize cap drop 2026-08-01: score 2, najniższy w rękawie Core/Quality, który siedzi na **29.15% NAV wobec targetu 22.5-31.5% = przy górnej granicy**. Brak miejsca na kolejną nazwę w tym rękawie. · 2/6
TTDTactical🆕 **weekly 8/9 — soft-drop zaproponowany osiem dni po dodaniu, i to jest wlasciwy wynik, nie porazka procesu.** TTD zostal dodany 8/1 z jawnie zapisana brama tezy (Q2 8/6) i cap em konwikcji MEDIUM; brama odpalila na NIE. Podstawa dropu: (1) mis-and-cut wobec **wlasnego** guidance u zarzadu, nie modelu analitykow; (2) score **2/6** przy `counter.positive: 0` przez caly okres na liscie; (3) **zero wlascicieli 13F** — noga super-inwestorska nie istnieje, a promote bar jej wymaga; (4) insiderzy netto sprzedaja od marca (klaster CEO z marca po $23.98-25.08 siedzi **74% NAD** dzisiejsza cena $13.80 = konwikcja, ktora sie nie sprawdzila). **Potwierdzenie: monthly 9/1** (anti-thrashing). Do tego czasu status `verified`, zero ekspozycji, zero rekomendacji. · 2/6
BLKCore/QualityCounter reset 2026-08-01 (false alarm): insider −0.67% (neutralny, próg to −1.0%), super-inw net **0**, recMean **1.35 (najsilniejszy strong-buy w puli)**, target **+21.4%**, EPS5Y 15.57%. Dwa negatywne checki były odczytem ceny, nie tezy. · 3/6
ENOREnergySize cap drop 2026-08-01: 52 verified wobec limitu 30. ENOR (score 1) — ETF krajowy przeklasyfikowany do Energy przy koncentracji sektorowej, a sleeve ma już IUES.L + trzy pojedyncze nazwy; najniższy score w rękawie. · 3/6
SWIncome/DefensiveSmurfit Westrock, Ketterer holds, post-merger cons · 3/6
VIE.PAIncome/DefensiveSize cap drop 2026-08-01: score 1, najniższy w rękawie Income/Defensive; brak mapowania ADR = brak danych o insiderach i 13F, czyli trzy z sześciu kryteriów scoringu są strukturalnie niedostępne. · 3/6
COPXIndustrial metalsSize cap drop 2026-08-01: score 2, ETF miedziowy dublujący VALE (pozycja otwarta) w rękawie Industrial metals o efektywnym targecie 2.5-5.0%. · 5/6
Counter −1 each. Weekly w maju może anulować (jeśli score lift do ≥4/6). Confirm w 2026-06 monthly. Cel: 60 → 30 verified w ~6-8 cycles.

🔍 Discovery scan 0 sources

Triangulacja 3 niezależnych źródeł aby znaleźć NOWE kandydaty: (A) finviz S&P 500 quality+value screen · (B) dataroma — co kupują super-investors (Buffett/Yacktman) w 13F filings · (C) insider buys (Form 4) ostatnie 30d. Spółka w 2+ z 3 sources = nowy verified candidate.
No sources
2+ source overlap
Single-source watch
Source: reports/—.md · refresh —. Top dataroma buys: —.
Data sources & ostatnie odświeżenia

🔌 Data sources status ✅ 14 OK · ⚠️ 0 warn · ❌ 0 fail

Layer 1 — Python helpery3/3 ✓
Layer 2 — Cloudflare Workers3/3 ✓
Layer 3 — Web fallbacks7/7 ✓
FRED 4Y macro pack24 series ✓
FF 5F factor returns12m → 02-2026 ✓
dataroma activity80 mgrs ✓
Last health check2026-08-27 11:37:46 UTC
Build dashboard2026-08-27 11:53 UTC
Pełny status: data-sources-status.md · Build: scripts/build_dashboard.py

📌 Action items post-close-2026-08-25

188
🚨 nav.py wycenia bary PROXY jako `settled_daily_close` — guard istnieje, ale nie jest wołany · due weekly-2026-08-30 — Post-close 8/25: `nav.py::fetch_settled_closes()` woła `download_batch()`, który dla instrumentów z luką sesyjną URUCHAMIA ścieżkę naprawczą i rekonstruuje bar dzienny z 60-minutówek — a zwrócona cena dostaje `price_source: settled_daily_close` bez ostrzeżenia. Dziś dotyczyło to **czterech pozycji EU o łącznej wadze 49,8% NAV** (IB01.L 36,72% · 4GLD.DE 5,00% · ISLN.UK 4,46% · IUES.L 3,66%) na dniu **2026-08-24**, czyli na BAZIE dzisiejszego TWR. Błędy proxy raportowane przez sam helper: 1,6/7,0/8,8/9,9bp (p50) i 3,3/19,5/23,4/27,1bp (p95) → ważone NAV **1,7-4,2bp = $1,44-$3,60**. Skutek widoczny: dzienny ruch NAV (0,89bp) jest MNIEJSZY od tego błędu, a łańcuch ledgera (+0,0089%) i świeże przeliczenie obu końców (−0,0029%) dają **przeciwne znaki**. Guard `detect_session_gaps()` istnieje i validate_yaml raportuje go jako WARN — ale ścieżka licząca NAV go NIE woła. Naprawa: `fetch_settled_closes()` odrzuca bar proxy (fail-CLOSED) albo oznacza go `price_source: intraday_proxy` — pole już istnieje w modelu `Position` i `nav.py` renderuje dla niego flagę ⚠️ FALLBACK. ⚠️ DRUGA NOGA tego samego itemu, złapana w tym samym runie: `data/session_gaps.json` (artefakt, z którego validate_yaml czyta bramkę luk) NIE MA WŁAŚCICIELA W KADENCJI — dziś zapisał go open snapshot o 15:01 UTC i nikt go nie odświeżył do 22:30, więc walidator oceniał wieczorną książkę na porannym stanie danych (11 instrumentów wobec faktycznych 6 o 20:51 UTC). Post-close odświeża go od 8/25; do rozstrzygnięcia, czy to ma być krok w SKILL, czy wywołanie wewnątrz validate_yaml.
189
🔧 Sprzeczność KROK 5 post-close ↔ post_event.py — kto otwiera okno po druku AMC · due weekly-2026-08-30 — Post-close SKILL KROK 5 nakazuje przy druku AMC utworzyć blok `post_event_tracking` JESZCZE TEGO WIECZORA, z `session_count: 1`, `pre_event_close` = zamknięcie sesji regularnej i `cumulative_change_pct` liczonym na **handlu posesyjnym**. Tymczasem `post_event.py::window_state()` — uczyniony kanonicznym źródłem przez action #172 (»liczony, nie pamiętany«) — dla druku AMC kotwiczy się na zamknięciu dnia druku i liczy sesje od NASTĘPNEGO ROZLICZONEGO zamknięcia; wywołane dziś dla INTU rzuca `ValueError: zero sesji poeventowych — okno jeszcze nie istnieje`. Dodatkowo schemat wymaga `cumulative_min_pct` liczonego przez `window_state()` i wprost zakazuje przepisywania z pamięci, a przy sesji 0 nie ma z czego go policzyć. Trzecia niezgodność w tym samym kroku: KROK 5 każe ustawić `decision_gate: weekly-<niedziela>`, co **Lesson #18 i `_check_decision_gate_units` wprost zakazują**. Dziś rozstrzygnąłem na korzyść skryptu (okno INTU otwiera post-close 8/26), bo to on jest egzekwowany maszynowo — ale rozjazd zostaje w tekście SKILL i wróci przy następnym druku AMC. Rozstrzygnięcie: przepisać KROK 5 pod `post_event.py` (sesja 1 = pierwsze rozliczone zamknięcie po druku, gate w sesjach) albo zmienić skrypt — nie zostawiać obu wersji.
102
❌ CPRT — BUY wycofany 7/12; re-entry tylko na potwierdzoną akumulację ✅ done · due weekly-2026-08-16 — Weekly 8/2: score **2/6** bez zmian, RSI nie oversold. ⚠️ **Zastrzeżenie tego runu: dataroma był NIEDOSTĘPNY** (ConnectTimeout + HTTP 406), więc noga (b) — 13F net-ADD — nie mogła być sprawdzona i poleciała fail-closed jak u wszystkich 51 kandydatów. To NIE jest potwierdzenie braku akumulacji, tylko brak danych (Lesson #5: „data unavailable ≠ confirmed absence"). Re-entry nadal wymaga: (a) pierwszy insider Form 4 BUY, LUB (b) 13F Q2 **8/14** net-ADD. Sama tania wycena + RSI<40 NIE wystarczą — to była dokładnie lekcja 7/12.
116
🔧 Audyt: które reguły żyją TYLKO w prozie (bez guardu)? ⏳ in progress · due monthly-2026-09-01 — Do monthly 9/1: przejść `portfolio.md § Framework hardening` #1-#16 i wypisać, które reguły nadal nie mają guardu. Priorytet: akcje nieodwracalne. **Nowy przypadek dopisany przez weekly 8/2 — patrz #144 (test stabilizacji rudy przechodzi na cichym zjeździe).**
117
🔄 Weekly 8/2 framework calibration — recurring od #105 ✅ done · due weekly-2026-08-02 — Pięć punktów kalibracji wykonanych na rozliczonych zamknięciach 7/31.
118
🔄 Weekly 8/2 cash override re-decision — recurring od #106 ✅ done · due weekly-2026-08-02 — Re-decyzja cash override; warunek composite rozstrzygnięty printem NAAIM 7/29.
119
🔧 SKILL.md — dopisać krok 5.0 (dataroma cache) — wymaga edycji przez Dawida ⏳ in progress · due weekly-2026-08-30 — Do dopisania w KROK 5: »python3 scripts/dataroma_cache.py --verified« PRZED pierwszą partią scoringu. ⚠️ **Weekly 8/2 dodaje warunek, którego pierwotny zapis nie miał, bo dopiero dziś się ujawnił: sam krok NIE WYSTARCZY.** Odpaliłem go zgodnie z opisem — i skończył się ciszą, bo `dataroma.com` był niedostępny (health check: ConnectTimeout 15 s; ponowienie: HTTP 406). Cache `dataroma_cache_2026-08-02.json`: **10 wpisów, 2 z danymi**, wobec **58/58** przy runie 7/26. Skutek: **Crit 4 poleciał fail-closed dla wszystkich 51 kandydatów** — `super_investor_new` nie jest spełnione u ani jednego tickera, więc dzisiejsze wyniki to **wartości dolne, zaniżone o max 1 pkt**. Zapis powinien brzmieć: odpal cache, **sprawdź, czy log pokazuje ≥40 tickerów**, a jeśli nie — **zaraportuj degradację Crit 4 w raporcie zamiast milcząco scorować**. Bez tej drugiej połowy krok daje złudzenie kontroli. Edycja: Settings > Capabilities albo repo źródłowe.
120
🚨 NAAIM ZA PAYWALLEM — POTWIERDZONE 8/1; decyzja o composite ✅ done · due weekly-2026-08-09 — **Ryzyko z 7/26 zmaterializowało się — to już nie jest zapowiedź.** `naaim.org/programs/naaim-exposure-index/` odpowiada **200 OK** z `dateModified 2026-07-31T17:01:35-04:00`, ale **tabela `surveydata` została USUNIĘTA z HTML**: został sam selektor CSS `table#surveydata` bez ani jednego wiersza, **link XLSX since-inception skasowany**, w treści pojawiają się „subscription"/„subscribe"/„login". **Print 7/29 (79,70) był ostatnim darmowym** i został pozyskany objazdem — WebSearch z dwóch niezależnych agregatorów (CEIC + ycharts), spójny z prior 84,02. **To zadziałało raz i nie jest metodą.** NAAIM to jedna z dwóch nóg composite'u #4, który steruje tym, czy w ogóle wolno kupować — a właśnie w tym runie **odpalił pierwszy raz od 6/14**, czyli jego waga decyzyjna jest maksymalna dokładnie wtedy, gdy źródło znika. Trzy opcje: (a) subskrypcja, (b) proxy instytucjonalny (CFTC COT, Investors Intelligence, put/call), (c) przedefiniowanie composite'u na jedną nogę + inny warunek potwierdzający. Backfill zabezpieczony: `data/naaim_exposure_history.csv` = 1 046 tygodni / 20,1 roku. 🚨 **Higiena per #124: to jest sprawa OSOBNA od pytania, czy próg <80 nadal znaczy to, co miał znaczyć.** Nie scalać w „skoro zmieniamy wskaźnik, to poluzujmy próg" — to framework bypass klasy Rule #4.
127
✅ Bufor operacyjny 2% NAV — ODBUDOWANY 8/3 wpływem z TRIM HIG; zero T-billi sprzedanych ✅ done · due weekly-2026-08-09 — ✅ **ZAMKNIĘTE 2026-08-03.** `cash_buffer.py` po zaksięgowaniu trimu HIG: wolna gotówka **$192,38 = 2,343% NAV**, próg 2,0% = **$164,23**, **zapas +$28,15**, `state: ok`, `proposal: null`. Źródło: wpływ netto **$146,82** ze sprzedaży HIG (raport XTB 8/3), **NIE** sprzedaż T-billi — pozycja IB01.L nadal 30,6959 sh. Luka ciągnęła się **sześć runów** (7/30 · 7/31 · 8/2 · 8/3 pre · 8/3 open · rozliczenie 8/3). **Kolejność HIG → IB01, rekomendowana w każdym z ostatnich pięciu raportów, zadziałała** — i zaoszczędziła ~$4/rok yieldu. Rec `🚦 TRIM IB01.L` zamknięta jako `superseded`. — PRIOR (weekly 8/2): wolna gotówka **$45,56 = 0,556% NAV**, próg 2,0% = **$164,20**, luka **$118,64**, transza **1 sh IB01.L ≈ $121,34** → po fillu $166,90 = 2,033% ✓. **Trzeci run z rzędu z identyczną luką (7/30 · 7/31 · 8/2)** — rec `🚦 TRIM IB01.L` istnieje i stoi od 7/31, więc wąskim gardłem nie jest już framework, tylko wykonanie. 💡 **Nowa okoliczność z tego runu, zmieniająca kolejność:** wystawiona dziś rec **TRIM HIG (~$149)** domyka lukę **samodzielnie**. Jej `valid_until` wprost to przewiduje („ALBO do momentu, gdy wolna gotówka wróci >=2% NAV inną drogą"). **Kolejność: HIG najpierw; IB01 tylko jeśli HIG nie zostanie wykonany.** Wykonanie HIG załatwia dwie rzeczy naraz — redukcję pozycji, w której cztery testy wskazują ten sam kierunek, i bufor — bez sprzedaży T-billi.
128
⛔ Cash override wygaszony — cztery sleeve''y pod targetem, ale Rule ✅ done · due weekly-2026-08-02 — Rozstrzygnięcie tempa deployu na weekly 8/2 (obowiązek nałożony przy wygaszeniu 7/30).
130
⚠️ MSFT nadwaga 6,5% — warunek odwrotu na marży (capex FY27 $255-260 mld) · due 2026-10-31 — Bez zmian proceduralnych. ⚠️ Kontekst z tego tygodnia **wzmacnia** ten warunek: MSFT zrobił **+19,43% WTD** (Azure +43%, RPO $678 mld +84%) i zamknął **na szczycie 52W**, percentyl 5Y **87,2%**. Nadwaga jest dziś kupowana po cenie, przy której Rule #4 nie pozwoliłby wejść — a przegląd 5-letni z 8/1 pokazał **FCF spadający trzy lata z rzędu** (74,07→71,61→66,99 mld) przy przychodzie +35%. Warunek odwrotu pozostaje na marży, nie na cenie.
132
🔄 Factor attribution refresh — recurring monthly (F-F publish) · due monthly-2026-09-01 — Next gdy Ken French opublikuje 2026-06 (na 8/1 seria kończy się na 2026-05). RMW −21,16 = quality headwind 12 m z rzędu, bez mean-reversion; rękaw Core/Quality 28,77% NAV jest przechylony dokładnie w ten faktor.
133
🔄 Discovery scan triangulation — recurring monthly (reguła kompletności źródeł) · due monthly-2026-09-01 — Bez zmian; monthly 9/1.
134
🔧 finviz_helper.screen_quality_value() — regresja upstream: zdublowana kolumna ⏳ in progress · due monthly-2026-09-01 — Bez zmian; weekly 8/9.
135
🚨 Liczniki surowcowe — kadencja 22:30 CEST wykluczona, ale problem ma DRUGĄ warstwę (czwarty raz) ⏳ in progress · due monthly-2026-09-01 — Decyzja o źródle liczników surowcowych — z nowym ustaleniem z weekly 8/2.
136
🚨 MELI Q2 + UBER Q2 (8/5) — podwójna brama pozycji, 9,71% NAV rozstrzyga się w jeden wieczór ✅ done · due 2026-08-05 — **T−3.** MELI (5,94% NAV) i UBER (4,85%) raportują tego samego dnia. **MELI:** `exit_discipline_v2` trzyma `gate_a` na **`warn` — marża operacyjna ex-jednorazowe 9,6% vs próg 10** = **licznik TRIM 1/2**; drugi taki odczyt w Q2 **odpala propozycję TRIM**. Przychód +30,4% ✓. WTD +3,20%. **UBER:** rozstrzygnąć wzorzec EPS — dwa kwartały z rzędu ok. **−82% surprise** to wzorzec, nie one-off; przy Waymo-risk to realny kandydat do TRIM, **nie do ADD**, mimo że `gate_a`/`gate_b` są `ok` (marża 14,6%, przychód +14,5%). Score 3/6 w tym runie (spadek z 5/6 — ale patrz zastrzeżenie #119: Crit 4 poleciał fail-closed dla całej puli). Wymagane wyjście: **jawny werdykt ADD/HOLD/TRIM per obie nazwy w post-close 8/5**, nie odłożenie na weekly 8/9.
137
🚨 13F Q2 (8/14) — brama w kolejce: INTU T3 · VALE T2 · CPRT re-entry (🧹 DECK USUNIĘTY 8/13 — ścieżka ZUŻYTA przy fillu T1 8/10) ✅ done · due weekly-2026-08-16 — **TRZY aktywne bramy zależą od jednego zdarzenia** (było: cztery). INTU T3 (noga b), VALE T2 (noga a, half-size), CPRT re-entry (noga b). 🧹 **DECK USUNIĘTY z tej listy 2026-08-13 (polecenie Dawida):** ścieżka (c) była trzecią z trzech ALTERNATYWNYCH dróg do transzy T1, a T1 został WYKONANY 8/10 — fill zużywa wszystkie trzy (active-trigger guard, Lesson #5). Trzymanie jej tu jako żywej bramy kazałoby przy net-ADD **kupić już wykonaną transzę drugi raz**, a DECK wchodził w tę bramę z JEDYNYM dodatnim stanem z czterech (netto +2) = najbardziej prawdopodobne odpalenie. Dla DECK 13F Q2 to wyłącznie `confirming_signal` -> upgrade konwikcji do MEDIUM_HIGH; jedyna brama transzowa to Q2 FY27 ~10/22. ⚠️ **Ten wpis był TRZECIM miejscem z tym samym stale zapisem** (obok `catalysts.md` i `entry_plan.next_tranche_gate`) i został znaleziony dopiero przy oglądaniu dashboardu — guard `validate_consumed_paths_in_catalysts` rozszerzony tego samego dnia o skan `dashboard_state.yaml`. ⚠️ **Waga tej daty wzrosła w tym runie:** `dataroma.com` był **niedostępny** (ConnectTimeout + 406), więc Crit 4 nie działał dla nikogo; 8/14 jest jednocześnie **momentem odświeżenia danych i momentem rozstrzygnięcia czterech bram**. Jeśli dataroma nie wróci do 8/14, to nie jest opóźnienie jednej metryki, tylko **cztery zablokowane decyzje** — do sprawdzenia przy weekly 8/9, czy potrzebny jest plan awaryjny (SEC EDGAR 13F bezpośrednio przez `market.boruta.tech`, który w health check świeci 200 OK).
138
📏 Size cap — potwierdzić 9 soft-dropów, po nich nadal 33 wobec limitu · due monthly-2026-09-01 — Bez zmian; monthly 9/1.
139
⚖️ MSFT — forma celu 6,5%: rekomendacja weekly to wariant (b), próg jako PERCENTYL nie kwota ✅ done · due weekly-2026-08-02 — Rozstrzygnięcie formy celu wagi po wygaśnięciu rec ADD 8/1.
140
🟢 DECK — jedyny kandydat przechodzący Rule ✅ done · due weekly-2026-08-09 — **Ścieżka (a) jest bliżej niż wskazywał zapis z 8/1.** Na rozliczonych zamknięciach 7/31: pasmo trzech ostatnich (103,54 / 99,69 / 96,88) = **6,66%** vs próg ≤3,5% → fail o **3,16pp**; **RSI 40,12 <42 ✓**; dołek $96,04 nietknięty ✓ = **dwie nogi z trzech spełnione**. Wystarczą **trzy sesje o zbliżonych zamknięciach**, żeby pasmo się domknęło — dlatego eval jest DZIENNY, nie tygodniowy. Ścieżka (b): cena wymaga −5,04%, RSI −5,12 pkt = fail na obu. Ścieżka (c): 13F **8/14 = T−12**. **Kontekst, który podnosi wagę tej pozycji w kolejce:** composite odpalił, okno jest otwarte, a DECK to **jedyny z 51 kandydatów, który przechodzi Rule #4** (percentyl 48,5% = `mid`, P/E 13,78 / fPE 11,58 vs 10Y mean ~23,6). Czyli okno się otworzyło i **jedyny kwalifikujący się kandydat nadal nie ma wejścia** — to NIE jest powód do rozluźnienia progu pasma.
141
🆕 TTD — najgłębsza wycena w puli (0,6 percentyla), ale trzy rzeczy się nie zgadzają; Q2 8/6 to brama TEZY ✅ done · due weekly-2026-08-09 — **Weekly 8/2 przyjrzało się TTD po raz pierwszy od dodania i zapisuje, dlaczego to NIE jest dziś propozycja.** Za: **percentyl obserwacji 5Y = 0,6% = `bottom_decile`** (najniższy w całej puli 51), **−79,9% od szczytu 52W**, fwd P/E **15,12**, D/E **0,17**, ROE 16,74%, marża operacyjna 20,26%, przychód **+11,82% Q/Q**, target $25,31 = **+40%**. Przeciw, i to rozstrzyga: (1) **RSI 44,97 = NIE oversold** — cena nie kapituluje, tylko dryfuje; (2) **pasmo 3 zamknięć 5,68%** = brak stabilizacji; (3) **insiderzy WYŁĄCZNIE sprzedają** — ostatnie cztery transakcje to Sale/Proposed Sale (28 maja, 11 maja, 5 marca ×2), **zero zakupów**; (4) **EPS Q/Q −16,77%** przy rosnącym przychodzie = kompresja marży. **Aktywna narracja o dysrupcji** (AI + retail media vs niezależny DSP) bez dowodu adaptacji → cap **MEDIUM** nawet gdy brama się otworzy. **Q2 8/6 jest bramą TEZY, nie ceny:** przy −80% od szczytu pytanie nie brzmi „czy tanio", tylko „czy model nadal działa". Warunek promocji bez zmian: brak cięcia guidance + post-event pullback (pasmo ≤4%, cena ≤ pre-event) + **czwarty zakup insidera LUB pierwszy właściciel 13F**.
142
✅ HIG — TRIM WYKONANY 8/3 (cel 5,0% → 4,0% osiągnięty; waga po fillu 3,99%) ✅ done · due weekly-2026-08-09 — ✅ **WYKONANE 2026-08-03.** Netto **−1,0231 sh za $146,82** (sprzedaż brutto 2,0769 sh @ avg $142,3805 + odkup korekcyjny 1,0538 sh @ avg $141,2887 po zdublowanym zleceniu XTB), prowizja $0, zysk zrealizowany **+$33,07**. Pozycja **3,3323 → 2,3092 sh**, waga **5,78% → 3,99%** vs cel **4,0%** = trafione z dokładnością **0,01pp**. Rękaw Income/Defensive **3,99%**, czyli zgodnie z zamiarem pod celem 6,5-13,0%. ⚠️ Incydent wykonawczy (zlecenie odpaliło z dwóch sesji brokera jednocześnie) opisany w `journal.md` 8/3 jako **lekcja #37**; round-trip dał **+$1,15**, ale to funkcja kierunku ceny, nie procesu. — PRIOR: Propozycja zgłoszona przez monthly 8/1 → **rec wystawiona przez weekly 8/2** po ponownej weryfikacji wszystkich czterech testów na danych z 7/31, z których **żaden nie zmienił się na korzyść**: (1) **fwd P/E 10,33 > trailing 9,17** = konsensus czeka SPADKU EPS (EPS5Y **2,92%**, PEG **3,54**); (2) **percentyl 5Y 99,0% = `top_decile` 🔒**, cena **−2,84% od szczytu 52W** — Rule #4 nie pozwoliłby dziś WEJŚĆ; (3) **Insider Trans −25,33% = najgorszy w książce**, ostatnie transakcje to Option Exercise + Sale tego samego dnia, zero zakupów na otwartym rynku; (4) **Recom 2,29**, target **+5,74% = najniższy upside w portfelu**. **NIE EXIT** — beta 0,46, funkcja defensywna potwierdzona w praktyce (6/05: +3,78% przy SPY −2,58%), Q2 7/23 był beatem +8,93%. Po trimie rękaw Income/Defensive **4,05% = zostaje POD celem 6,5-13,0%**, więc kapitał ma dokąd wrócić. 💡 **Wpływ ~$149 domyka lukę bufora operacyjnego ($118,64) samodzielnie → wykonać PRZED trimem IB01.L** (patrz #127).
143
🔄 Weekly 8/9 framework calibration — recurring od #117 ✅ done · due weekly-2026-08-09 — Weekly 8/9, pięć punktów, każdy z liczbą i porównaniem do dziś: (1) **Composite #4 — czy trzyma drugi tydzień?** Dziś 2/2 (AAII 31,0 / NAAIM 79,70). ⚠️ **Noga NAAIM może nie mieć źródła** — jeśli #120 nie zostanie rozstrzygnięte, zapisz to jako brak danych, **nie** jako przetrwanie warunku (Lesson #5). (2) **Cycle drift:** miedź dziś **99,0 percentyla** (rekord cyklu) · WTI **75,2** · złoto/srebro **87,4** — czy któryś schodzi poniżej 75 (= zdjęcie restricted)? (3) **Crowded-count** dziś **2/5** (SPX blisko ATH + VIX 15,99 complacent); VIX >25 = reguła #3. (4) **Alpha WTD** dziś **+1,28pp** — ile z niej to MSFT (dziś: praktycznie całość, +19,43%)? Policz alphę **bez MSFT**, żeby zobaczyć, czy książka pracuje, czy wiezie ją jedna nazwa. (5) **Czy „nie ma czego" nadal obowiązuje** — czy któryś z 51 kandydatów przeszedł z `off_high` do realnego cofnięcia. Dziś zero.
144
🚨 Test stabilizacji rudy przechodzi na CICHYM ZJEŹDZIE — wada bramy VALE T2 (c) ✅ done · due weekly-2026-08-16 — **Znalezione przy re-ewaluacji VALE w tym runie i warte osobnego wpisu, bo to wada konstrukcyjna, nie odczyt.** Brama (c) „stabilizacja rudy" ma trzy nogi: pasmo 10 sesji ≤1,5%, max |zmiana d/d| ≤1,0%, odległość od dna 6M ≤+3%. Na `TIO=F` **$98,00** wszystkie trzy są **spełnione** (pasmo 0,71% · max d/d ~0,25% · odległość od dna 0%). **Problem: dno 6M to DZISIEJSZE zamknięcie.** Ruda robi **nowe minimum** w tym samym odczycie, w którym „się stabilizuje", a RSI(14) = **26,39** = głęboko wyprzedana. **Ciasne pasmo wokół poziomu, który powoli się osuwa, spełnia test zbudowany na paśmie i odległości od dna — bo dno idzie razem z ceną.** Test mierzy brak zmienności, a miał mierzyć koniec spadku. **Naprawa: dopisać czwartą nogę — „dno 6M nie zostało pogłębione w oknie 10 sesji".** Do implementacji razem z guardem z #116. ⚠️ Praktycznie dziś bez skutku: VALE T2 i tak jest gated na 13F 8/14 half-size, a **miedź na 99,0 percentyla** jest niezależnym i mocniejszym argumentem przeciw dokupowaniu metali przemysłowych teraz.
145
🔄 Weekly 8/9 cash re-decision — recurring od #118 (pierwsza po wygaśnięciu override) ✅ done · due weekly-2026-08-09 — **Pierwsza re-decyzja po tym, jak override przestał istnieć — zmienia się pytanie.** Do 8/2 brzmiało „czy przedłużyć override". Od teraz brzmi: **„czy Cash/Yield zbliża się do efektywnego sufitu 32,5%, a jeśli nie — dlaczego"**. Stan dziś: **46,07% = +13,6pp nad sufitem**, cztery rękawy pod celem (Tactical −2,15pp · Income/Defensive −0,67pp · Energy −0,94pp · Industrial −0,56pp). **Wymagane wyjście weekly 8/9:** (a) czy composite nadal odpala (patrz #143 pkt 1), (b) czy którykolwiek kandydat przeszedł Rule #4 — dziś **zero z 51**, (c) jeśli nadal zero, **zapisz to jawnie jako ograniczenie sygnałowe, nie polityczne**, i nie proponuj fillu tylko po to, żeby ruszyć wskaźnik. Zmniejszenie Cash/Yield przez **TRIM HIG** (jeśli wykonany) liczy się do bufora, **nie** do deployu — to zamiana jednej pozycji na gotówkę, nie wejście w ryzyko.
146
⚠️ SW — czwarty mis NIE nastąpił; rozjazd „score vs fundamenty" rozwiązał się w drugą stronę ✅ done · due weekly-2026-08-02 — Zamknięcie wątku z #123 (weekly 7/26).
147
🚦 ZATWIERDZONE przez Dawida 2026-08-06 — bufor operacyjny 2.0% → 5.0% NAV ✅ done · due post-close-2026-08-06 — Decyzja Dawida 2026-08-06 ~16:45 CEST w odpowiedzi na pytanie „minelo kilka miesiecy a nadal mamy 50% budzetu w gotowce". **Zmiana: `cash_policy_override.operating_buffer_pct_nav` 2.0 → 5.0** w `portfolio.md` → `## Cash state`. Uzasadnienie: przy 47,6% NAV w gotowce i T-billach rekomendacje DECK ($164), INTU T3 ($120) i VALE T2 byly blokowane **piec sesji z rzedu** brakiem rozliczonego USD — wolna gotowka $233 przy buforze $166 daje nadwyzke $67, ponizej pojedynczej transzy. Bufor 5% = ~$416 pokrywa kazda pojedyncza transze bez czekania na rozliczenie T+. Koszt: jednorazowy trim IB01.L ~$250, utracony yield ~$9/rok. **IMPLEMENTACJA NALEZY DO POST-CLOSE 2026-08-06** (wlasciciel wystawiania TRIM IB01.L per doktryna `portfolio.md` → `\U0001F6A6 Bufor operacyjny`). ⚠️ **Wykonac ATOMOWO — zmiana progu BEZ jednoczesnego wystawienia rec zablokuje build**: `cash_buffer.py` zwroci `state: breach`, a `validate_yaml.py` → `validate_cash_buffer()` podniesie ERROR i przerwie `build_dashboard.py`. Kolejnosc: (1) zapis progu 5.0 w `portfolio.md`, (2) rec `TRIM IB01.L` ~2 sh na pokrycie luki, (3) validator, (4) build.
148
🚨 Rule #4 stosowany SZERZEJ niz doktryna — cycle_position.py nie zna rekawow ✅ done · due weekly-2026-08-09 — Znalezione 2026-08-06 przy analizie „dlaczego 47,6% NAV siedzi w gotowce". **`scripts/cycle_position.py` liczy `rule4_restricted` WYLACZNIE z bracketu percentyla** (`RESTRICTED_BRACKETS = {top_decile, high}`, linia 82/124) — **zero swiadomosci rekawa czy klasy aktywow**. Tymczasem doktryna w `portfolio.md` (od 2026-04-30, sekcja „Cycle-position check — strict implementation dla cyclical assets") mowi wprost: hard cap **aplikuje sie do BUY proposals w sleeves Energy / Industrial metals / Precious metals / Uranium / Country ETF on cyclical economy**, a **„Quality compounders + structural-thesis assets uzywaja override path (4-test), nie cycle-position hard cap"**. Skutek: nazwy z rekawow NIEcyklicznych sa oznaczane `\U0001F512 restricted` i tak czytane w raportach — **dzis GOOG 97,1% (Core/Quality), MSFT 90,9% (Core/Quality), HIG 99,8% (Income/Defensive)**. Faktycznie cykliczne i slusznie restricted sa tylko IUES.L (Energy), 4GLD.DE + ISLN.UK (Precious). Czyli **„7 z 13 pozycji restricted" powtarzane w raportach od tygodni jest zawyzone — realnie 3 z 13 podlegaja hard capowi**, reszta powinna isc sciezka 4-test override (uzywana i udokumentowana przy META 5/11, MELI 5/18, 4GLD 5/28, MSFT 6/15). ⚠️ **To jest trzecie wystapienie tej samej klasy defektu w jednym dniu** (licznik `gate_a_consecutive` niezapisywany; `execution_state` nieczytane): **narzedzie i doktryna daja rozne odpowiedzi, a odpowiedz narzedzia zostala skopiowana do raportow jako fakt.** Do rozstrzygniecia: (a) czy `cycle_position.py` dostaje mapowanie ticker→sleeve i flaguje restricted TYLKO dla rekawow cyklicznych, (b) czy skan tygodniowy 51 kandydatow ma byc powtorzony pod poprawionym zakresem — uwaga, WM i tak odpada na Crit 7 (P/E TTM 59,46 vs 10Y mean ~28,8-32,1), wiec naprawa NIE odblokuje automatycznie kandydatow, ktorych odrzucono z innych powodow.
149
❓ Czy szerokie ETF-y krajowe (EWS, EWJV) naleza do zakresu cyklicznego Rule #4? ✅ done · due weekly-2026-08-09 — Otwarte pytanie ujawnione 2026-08-06 przez zawezenie zakresu Rule #4 (action #148). Doktryna wymienia jako cykliczne m.in. **„Country ETF on cyclical economy"** — ale nie definiuje, ktore gospodarki sa cykliczne. Klasyfikacja przez rekaw zalatwia przypadki oczywiste: **ENOR** ma rekaw `Energy` (Norwegia = gospodarka naftowa) i **KTY.WA** `Industrial metals` → oba slusznie `restricted`. Nierozstrzygniete zostaja **EWS (Singapur, rekaw `Income / Defensive`)** i **EWJV (Japonia value, rekaw `International`)** — po zmianie oba przechodza z `restricted` na `override_required`. To NIE jest przypadek marginalny: **oba maja score 4/6 = najwyzszy w calym skanie 51 kandydatow, oba siedza na percentylu 99,6%**, czyli sa jednoczesnie najlepiej punktowane i najwyzej w swoim zakresie 5Y. Innymi slowy zmiana zakresu odblokowala dokladnie te dwie nazwy, ktore najbardziej wygladaja na „kupno na szczycie". **Zapisuje to jawnie, zeby nie przeszlo bokiem.** Do rozstrzygniecia w weekly 8/9: (a) czy szeroki ETF na gospodarke rozwinieta liczy sie jako `cyclical` (wtedy dopisac do `CYCLICAL_SLEEVES` mechanizm per-ticker), czy (b) zostaje `structural` — ale wtedy 4-test override dla ETF-u koszykowego wymaga jawnej obrony tezy strukturalnej, bo „Japonia value" i „Singapur" to alokacja, nie teza o firmie. Do czasu rozstrzygniecia **zadnego BUY na EWS/EWJV nie wystawiam**.
150
⛔ dashboard_data.cycle_position() liczy miare zdeprecjonowana mimo nazwy `percentile_rank` ✅ done · due weekly-2026-08-16 — Znalezione 2026-08-06 przy pracy nad action #148. `scripts/dashboard_data.py` ma **wlasna, druga implementacje** `cycle_position()`, ktora liczy `(cena − min) / (max − min)` = **pozycje w zakresie**, czyli miare zdeprecjonowana audytem 2026-07-30 (rozjazd do **+46pp na srebrze**, **+32pp na WTI**) — a pole nazywa sie `percentile_rank`, i naglowek modulu reklamuje ja jako „Rule #4 5Y percentile rank". **Dzis nic nie liczy zle w produkcji**: funkcja jest wolana wylacznie z wlasnego bloku `__main__` (linia ~1563); `build_dashboard.py` i `score_all_verified.py` importuja `dashboard_data`, ale tej funkcji nie uzywaja. Ryzyko jest przyszle i ciche — kazdy kolejny import dostalby zdeprecjonowana miare pod poprawnie brzmiaca nazwa. Dzialanie 2026-08-06: **dodany glosny deprecation banner w docstringu** (nie usuwam, zeby nie zrywac API bez przesledzenia wywolan). Do weekly 8/9: usunac albo przepiac na `cycle_position.cycle_position()`.
151
🚨 Skan 8/2 liczyl `super_investor_new` z NIEDZIALAJACEGO dataroma — przeliczyc 51 kandydatow ✅ done · due weekly-2026-08-09 — Znalezione 2026-08-06 przy przeliczaniu skanu pod poprawionym zakresem Rule #4. Weekly 8/2 zapisalo wprost: „dataroma byl NIEDOSTEPNY (ConnectTimeout + HTTP 406), wiec noga (b) — 13F net-ADD — nie mogla byc sprawdzona i **polecila fail-closed jak u wszystkich 51 kandydatow**" — a jednoczesnie w podsumowaniu: „flaga `super_investor_new` nie jest spelniona u **ani jednego** tickera". **Dzis `dataroma_cache.refresh()` pobral 21 z 21 tickerow bez bledu.** Czyli zdanie o zerowej akumulacji instytucjonalnej opisywalo **awarie zrodla, nie rynek**. Poniewaz `super_investor_new` jest jedna z szesciu flag score i jednoczesnie **test 4 z 4-test override**, caly skan 8/2 byl liczony z ta noga wyzerowana technicznie. **Do zrobienia: przeliczyc flage dla wszystkich 51 na swiezym cache i zaktualizowac `score` + `entry_signals` w `watchlist.md`.** To jedyny punkt z listy weekly, ktory realnie moze zmienic score do progu STRONG 4/6 i wyprodukowac kandydata. ⚠️ Wlascicielem scoringu jest weekly — open snapshot swiadomie NIE przelicza score, tylko zglasza. Material: `reports/2026-08-06_rule4-rescan_prep-for-weekly.md` sekcja 3a.
152
⚖️ Kanoniczne zrodlo P/E + czy Crit 7 liczy TTM czy forward (rozjazd WM 31,74 vs 59,18) ✅ done · due weekly-2026-08-09 — WM ma 2026-08-06 **P/E TTM 31,74 wg finviz** i **59,18 wg yfinance** — rozjazd **86%** na tym samym wskazniku tego samego dnia; forward zgadza sie co do grosza (24,69 vs 24,54). Prawdopodobna przyczyna: GAAP vs skorygowany EPS (integracja Stericycle w TTM). **Dlaczego to wazne: weekly 8/2 odrzucilo WM — najwyzej punktowanego kandydata calego skanu (4/6) — zdaniem „P/E TTM 59,46 vs 10Y mean ~28,8-32,1 (Crit 7 odrzuca)". Na odczycie finviz LUB na forward Crit 7 by NIE odrzucil.** Werdykt dla WM i tak pozostaje „nie kwalifikuje sie" (odpada na tescie 4: dataroma 3 wlascicieli, netto −1, zero zakupow insidera 6m), wiec **wynik sie nie zmienia — ale proces jest wadliwy niezaleznie od tego**: gdyby test 4 przeszedl, decyzja zalezalaby od tego, ktore zrodlo ktos tego dnia odpytal. Do ustalenia: (a) kanoniczne zrodlo P/E, (b) czy Crit 7 (wycena ponizej 10Y mean) liczy sie na TTM czy forward, (c) jak traktowac spolki z jednorazowymi obciazeniami w TTM. Material: `reports/2026-08-06_rule4-rescan_prep-for-weekly.md` sekcja 3b.
153
🔧 HIG `target_weight_pct: 5` w pliku vs cel 4,0% z wykonanej rec TRIM HIG ✅ done · due weekly-2026-08-09 — `portfolio.md` ma dla HIG **`target_weight_pct: 5`**, a wykonana rec `TRIM HIG` (weekly 8/2, fill 2026-08-03) mowi „cel wagi 5,0% → 4,0% osiagniety, waga po fillu 3,99%". Skutek: pozycja przy **3,98% NAV** wyglada w kazdym liczeniu na **niedowazona o 1,02pp ≈ $85**, podczas gdy faktycznie **siedzi na swoim nowym celu**. ⚠️ Ten blad **wszedl juz do analizy** — open snapshot 2026-08-06 liczyl HIG jako $85 luki przy szacowaniu tempa deployu (odpowiedz na pytanie Dawida o 47,6% gotowki). Korekta: tej luki nie ma. **Do zrobienia: zapisac `target_weight_pct: 4` w `portfolio.md`** (wlasciciel pliku: post-close/weekly — open snapshot nie jest wlascicielem). Ta sama klasa defektu co #148/#150: decyzja zapadla, plik jej nie odzwierciedla.
154
❓ 4-test nie ma czwartej nogi dla ETP — dataroma sledzi tylko pojedyncze spolki ✅ done · due weekly-2026-08-09 — Luka metodyczna ujawniona 2026-08-06. Test 4 z 4-test override („super-investor / institutional adoption") jest wypelniany z dataroma, ktora sledzi **pozycje 13F w pojedynczych spolkach**. Dla ETF-ow zwraca **0 wlascicieli** — dzis: EWS 0, EWJV 0, CIBR.UK 0, SMH 1, RHM.DE 0, BATS.L 0, ISP.MI 0, VIE.PA 0. Jednoczesnie doktryna `portfolio.md` **klasyfikuje ETF-y tematyczne jako override eligible** (wiersz „Cybersecurity (Tactical structural): PANW, HACK, **CIBR**" oraz „AI semis: TSM, **SMH**"). Czyli doktryna dopuszcza sciezke, ktorej czwartej nogi **nie da sie wypelnic z obecnych zrodel** — a per Lesson #5 „data unavailable ≠ confirmed absence", wiec nie wolno tego czytac ani jako pass, ani jako fail. Do rozstrzygniecia: (a) test 4 dostaje wariant dla ETP (np. przeplywy do funduszu / AUM trend / adopcja instytucjonalna underlyingu), albo (b) ETP-y tematyczne wracaja pod strict counter-cycle. Material: `reports/2026-08-06_rule4-rescan_prep-for-weekly.md` sekcje 2 (CIBR.UK) i 6 pkt 4.
155
⚖️ TSM — czy dataroma netto −11 przy 24 wlascicielach dyskwalifikuje test 4? ✅ done · due weekly-2026-08-09 — Decyzja jakosciowa do podjecia, nie defekt. TSM jest **jedyna nazwa w calym przegladzie, gdzie trzy testy override przechodza wyraznie**: (1) named driver — AI capex w semis, uzywany w doktrynie jako **przyklad wzorcowy** testu 1; (2) multi-year evidence — rekordowy capex hyperscalerow 2023-2026; (3) valuation — **fPE 19,49, PEG 0,52, EPS5Y 37,45%, ROE 40,06%, D/E 0,15** = najlepsza wycena w grupie. Rozstrzyga **test 4**: dataroma **24 wlascicieli, netto −11** (4 dodania / **16 redukcji**). Pytanie: czy szeroka baza wlascicieli przy silnej redukcji netto to **adopcja instytucjonalna z rotacja** (test przechodzi), czy **instytucje wychodza** (test nie przechodzi)? Doktryna mowi tylko „nie tylko retail momentum" i nie rozstrzyga kierunku przeplywu. Kontekst: cena $422,17, RSI 52,92, **−11,86% od 52W high**, percentyl 96,7% = `top_decile` (rekaw Tactical/Themes → `override_required`, nie hard cap). Poprzednia rec wygasla 7/21 jako `chase_dead`. ⚠️ Zweryfikowac przy okazji `insider6mo: 153` w cache — wyglada na artefakt parsera (reszta zestawu ma 0-2).
157
🔧 Konwencja RSI(14) — N=60 NIE reprodukuje finviz; przyjac pelna serie jako kanoniczna ✅ done · due weekly-2026-08-09 — Rozstrzygniete de facto przez post-close 2026-08-07, wymaga ZATWIERDZENIA i zapisu do schematu. Test na czterech tickerach na zamknieciach 8/7: DECK pelna seria 41.773 / N=60 42.501 / **finviz 41.77** · MELI 49.81 / 50.50 / **49.81** · UBER 58.07 / 58.01 / **58.07** · TTD 28.42 / 28.67 / **28.42**. **Pelna seria reprodukuje deklarowane zrodlo co do drugiego miejsca na WSZYSTKICH czterech; N=60 rozjezdza sie na wszystkich, na DECK o 0.73 pkt.** To nie byla »niepewnosc pomiaru« (tak nazywaly to runy 8/6 i 8/7 rano), tylko **blad konwencji**. ⚠️ **Ekspozycja decyzyjna byla realna:** pod N=60 DECK dalby 42.50 i sciezka (a) rec `BUY DECK` **NIE odpalilaby**; pod pelna seria daje 41.77 i odpala. Do zrobienia: (1) zapis konwencji w `dashboard/schemas/watchlist.schema.yaml` przy polu `rsi_estimate`, (2) usuniecie odwolan do »60 rozliczonych zamkniec« z blokow `post_event_tracking`, (3) decyzja, czy stare odczyty N=60 wymagaja przeliczenia.
158
⚖️ Brama wyjscia vs target sleeve u — IUES.L po trimie 2.94% NAV wobec pasma Energy 5.0-7.5% ✅ done · due weekly-2026-08-23 — Ujawnione przez post-close 2026-08-07 przy drugiej eskalacji `gate_a` IUES.L (WTI 2/2 pod $80). Pozycja wazy **3.44% NAV**, czyli **JUZ ponizej** dolnej krawedzi pasma docelowego sleeve u Energy (5.0-7.5%); po zatwierdzeniu proposalu TRIM 0.5pp zejdzie do **~2.94%**, czyli **2.06pp pod pasmem**. **Brama tezy i target alokacji ciagna w przeciwne strony, a framework nie ma reguly pierwszenstwa.** Pytanie do rozstrzygniecia: czy `exit_discipline` ma pierwszenstwo przed `sleeve_targets`, czy brama powinna sie zatrzymywac na dolnej krawedzi pasma. ⚠️ Bez rozstrzygniecia kolejne odczyty WTI <$80 beda generowac proposale trimujace pozycje do zera **mimo ze sleeve jest niedowazony**, a `gate_b` (percentyl cyklu 74.7 = `upper_mid`, licznik 0/2) mowi, ze ropa NIE jest droga cyklicznie.
159
🔧 Semantyka nav.py o 22:30 CEST — walidator zglasza WARN po kazdym poprawnym zapisie post-close ⏳ in progress · due weekly-2026-08-30 — `scripts/nav.py` z konstrukcji pomija bar dnia biezacego (lekcja #30), wiec o 22:30 CEST liczy marki DNIA POPRZEDNIEGO — mimo ze sesja US jest wtedy domknieta od 30 minut. Post-close 8/7 obszedl to jawnym parametrem `--as-of 2026-08-08 --write` (zapis OK, uzgodnienie +0.000%), ale **`validate_yaml.py` wola `nav.py` BEZ `--as-of`** i w efekcie porownuje marki 8/6 z zapisanymi markami 8/7 → **WARN ROZJAZD NAV -0.596% po kazdym poprawnym zapisie**. Czyli walidator karze za wykonanie wlasnosci C2 zgodnie z jej przeznaczeniem. Do zrobienia: albo `nav.py` dostaje swiadomosc godziny (po 22:00 CEST bar US jest rozliczony), albo walidator wola go z tym samym `--as-of` co post-close. **Zgloszone juz 8/6 w innej formie** (»skrypt liczy nadal marki 8/5«) — dzis ta sama przyczyna, inny objaw.
160
🚨 Piaty z rzedu blok post_event_tracking zamkniety BEZ ani jednej sesji w strefie wejscia ✅ done · due weekly-2026-08-16 — Seria po zamknieciu UBER 2026-08-07: **MSFT `chase_dead` · META `expired_no_entry` · CCJ `chase_dead` · GOOG `expired_no_entry` (7/28) · UBER `expired_no_entry` (8/7)** — 5 z 5, zero wejsc. Szosty (MELI) siedzi **0.19 pkt RSI** od tej samej sciezki. **Przy serii 5/5 pytanie »czy okno 7 sesji lapie cokolwiek« przestaje byc retoryczne.** Hipoteza do sprawdzenia: mechanizm wymaga STABILIZACJI (pasmo <=3%), a rynek w biezacym rezimie (VIX 14.90 = minimum cyklu, HY OAS 2.71 = minimum cyklu) reaguje na wyniki w **1-2 sesjach** i wraca do trendu — czyli pasmo nie zdazy sie uformowac, zanim cena ucieknie. Dowod kierunkowy z UBER: pasmo **roslo** w kazdym kolejnym odczycie (3.931% → 4.541% → 9.599%). Do rozstrzygniecia: czy prog pasma jest zle skalibrowany do rezimu niskiej zmiennosci, czy okno jest za dlugie, czy mechanizm jest poprawny a po prostu nie bylo okazji.
161
🔄 Weekly 8/16 framework calibration — recurring od #143 ✅ done · due weekly-2026-08-16 — Weekly 8/16, pięć punktów, każdy z liczbą i porównaniem do dziś: (1) **Composite #4 — czy noga NAAIM ma źródło?** Dziś BEZ DANYCH drugi tydzień; jeśli #120 nadal nierozstrzygnięte, zapisz to jako brak danych **trzeci raz** i podnieś do priorytetu blokującego — trzy runy z nieewaluowalnym warunkiem sterującym zakupami to nie ryzyko, to stan. AAII dziś **37,0**, zapas do progu 40 = **3,0 pkt**. (2) **Cycle drift:** WTI dziś **55,9** (zszedł z 75,2 = zdjęta flaga) — czy wraca nad 75? miedź **99,5 rekord**, złoto **91,4**, srebro **89,7**, SPX **100,0** — czy któryś schodzi pod 75? (3) **Crowded-count** dziś **2/5 + 1 nieznany** (SPX ATH, VIX 14,90 = minimum cyklu). (4) **Alpha WTD** dziś **−1,64pp**; policz ją **z rozbiciem na książkę ryzyka vs T-bille** — dziś książka zrobiła +3,57% ≈ SPY, a całą ujemną alfę zrobiło 44,54% w IB01.L przy +0,05%. **Jeśli ten rozkład się powtórzy trzeci tydzień, to jest argument o alokacji, nie o selekcji.** (5) **Czy DECK się wykonał?** Jeśli nie — dlaczego: brak approvalu (ryzyko procesu) czy brak gotówki (ryzyko kapitałowe, drugi raz ta sama przyczyna).
162
🔄 Weekly 8/16 cash re-decision — recurring od #145 ✅ done · due weekly-2026-08-16 — Pytanie do rozstrzygnięcia: **czy Cash/Yield zbliża się do efektywnego sufitu 32,5%, a jeśli nie — dlaczego.** Stan dziś: **44,54% = +12,0pp nad sufitem** (po TRIM IB01.L 3 sh spadnie do ~40,19% = +7,7pp). Cztery rękawy pod celem: Tactical/Themes 5,05% (7,0-14,0) · Income/Defensive 3,95% (6,5-13,0) · Energy 3,44% (5,0-7,5) · Industrial 1,86% (2,5-5,0). **Wymagane wyjście:** (a) czy TRIM IB01.L + BUY DECK zostały wykonane, (b) czy jest DRUGI kandydat przechodzący Rule #4 (dziś jeden), (c) **jeśli nadal jeden, zapisz jawnie, czy ograniczeniem jest sygnał, polityka czy kapitał** — to rozróżnienie zmieniło się w tym tygodniu i może zmienić się znowu.
163
🔧 cash_buffer.py sizuje pod bufor, nie zna kolejki oczekujących BUY ⏳ in progress · due weekly-2026-08-30 — Znalezione 2026-08-09 przy weryfikacji finansowania `BUY DECK`. `cash_buffer.py --json` zwraca `shares_to_sell: 2` = **$242,80** → wolna gotówka $476,13 = 5,69% NAV, bufor domknięty, **ale nadwyżka nad progiem tylko $57,82 — mniej niż transza DECK $166**. Rec `TRIM IB01.L` wystawiona przez post-close 8/7 na **3 sh = $364,20** jest poprawna; **błąd jest w skrypcie.** Skutek: przy buforze 2% to nie miało znaczenia, przy **5% i transzy 2% NAV skrypt systematycznie proponuje trim za mały, żeby gotowa rekomendacja mogła się wykonać** — czyli odtwarza dokładnie to ograniczenie kapitałowe, dla którego bufor podniesiono 8/7. **Do zrobienia:** `cash_buffer.py` czyta `recommendations.md` i sizuje trim na `max(luka_bufora, luka_bufora + suma transz rec ready_to_execute)`. Klasa defektu: skrypt zna jeden warunek, decyzja wymaga dwóch.
164
⚖️ Prog promocji przy score_max=4 jest LŻEJSZY niż przy 6 — trzy tickery na słabszym barze ✅ done · due weekly-2026-08-16 — Znalezione 2026-08-09 przy audycie KROK 3 (anomalia VIE.PA). **Redukcja `score_max` z 6 do 4 OBNIŻA próg promocji zamiast PODNOSIĆ wymaganą pewność:** przy `score_max: 6` próg to ≥4 = **67%** puli, przy `score_max: 4` to ≥2 = **50%**. Czyli ticker, u którego **trzy z sześciu kryteriów są strukturalnie niedostępne** (brak mapowania ADR), przechodzi **łatwiejszy** test niż ticker z pełnymi danymi. Dotknięte: **ISP.MI (2/4, `promote_candidate`)**, **RHM.DE (2/4, `promote_candidate`)**, **VIE.PA (2/4, counter 2/0 ORAZ soft_drop_proposed=true jednocześnie)**. VIE.PA ma **jedną** spełnioną flagę merytoryczną (`analyst_raise` +11,8%) plus `off_high` = miarę relatywną. **Liczniki tych trzech zamrożone w tym runie** (`counter_frozen: true` + powód). **Do rozstrzygnięcia: albo próg dla score_max=4 idzie na ≥3 (75%), albo tickery z ≥2 strukturalnie niedostępnymi kryteriami mają liczniki zamrożone z definicji** (rekomendowane — zgodne z Lesson #5). Per Lesson #5 licznik zbudowany na puli 2 z 6 potwierdzalnych kryteriów nie może napędzać promocji.
165
⚖️ Doktryna KROK 3 vs guard validate_counter_promote — rozbieżność progu promocji ✅ done · due weekly-2026-08-16 — Ujawnione 2026-08-09 przez WM. **Proza SKILL.md KROK 3 mówi: `counter.positive >= 2` → `promote_candidate` (status field update).** **Guard `validate_counter_promote` w `validate_yaml.py` mówi: pinned pos≥2 jest `actionable` tylko gdy DODATKOWO `rsi_oversold` ORAZ (`insider_buying` LUB `super_investor_new`).** WM ma dziś counter 2/0, RSI 46,37 = nie oversold → guard mówi „0 actionable", doktryna mówi „promuj". **Guard jest ostrożniejszy i ma rację**, co widać na WM: licznik mówi promote, a trzy niezależne testy odrzucają (Crit 7 P/E TTM 32,23 vs mean×0,85 = 24,5-27,3 · dataroma netto −1 · zero zakupów insidera 6m). **Do zrobienia: zapis prozy w SKILL.md dociągnąć do guardu** (promocja wymaga pos≥2 **AND** oversold **AND** akumulacja), żeby te dwa źródła nie mówiły różnych rzeczy. Wymaga edycji SKILL.md przez Dawida.
166
🔧 Enum post_event_tracking.status nie zna `expired_thesis_broken`, a doktryna go używa ✅ done · due weekly-2026-08-16 — Znalezione 2026-08-09 przy zamykaniu bloku TTD. `decision_gate_rule` w bloku TTD (napisana 8/1) wprost przewiduje: „LUB guidance Q3 cięty (= złamanie warunku (a), blok zamyka się jako `expired_thesis_broken`)" — **ale enum w `dashboard/schemas/watchlist.schema.yaml` tej wartości nie zawiera.** Skutek: **zapisanie stanu ZGODNIE Z REGUŁĄ wywala walidator**, a wartość poza enumem wypada z `ACTIVE_STATUSES` i sortuje się na priorytet 99 = **blok staje się niewidoczny dla bramy counter-cycle bez żadnego komunikatu** (Pakiet B2). Obejście zastosowane: `expired_no_entry` + nowe pole `terminal_reason: thesis_broken`. **Do rozstrzygnięcia przez Dawida: rozszerzyć enum o `expired_thesis_broken` (rekomendowane — rozróżnienie „okno wygasło" vs „teza padła" ma znaczenie decyzyjne przy re-entry) albo usunąć to określenie z reguł.** Nie rozstrzygam sam, bo to zmiana schematu.
167
🚨 Cudzysłów polski w skalarze YAML — DZIESIĄTY incydent u tego samego autora ✅ done · due weekly-2026-08-16 — Guard A3 złapał ten sam błąd **dwa razy w tym runie** (linie 2363 i 1370 `watchlist.md`), co daje **10 incydentów w 10 dni**. Weekly 8/2 zapisało argument za normalizacją **w writerze**, nie tylko w walidatorze — i przez tydzień nikt tego nie zrobił, więc dziś argument jest o jeden dowód mocniejszy. **Do zrobienia:** funkcja pisząca bloki YAML normalizuje `„` → `”` i escapuje cudzysłowy proste w skalarach **przed** zapisem; walidator zostaje jako defense-in-depth. **Wzór do nazwania wprost: guard, który łapie ten sam błąd dziesięć razy, nie jest zabezpieczeniem — jest miarą tego, że naprawa jest w złym miejscu.**
168
⚖️ Okno post_event dla mega-capów: 4 sesje vs test pasma — hipoteza z #160 zawężona ✅ done · due weekly-2026-08-16 — Weekly 8/9 dostarczyło **kontrprzykład, który zmienia diagnozę #160**. Hipoteza brzmiała: „okno 7 sesji nie łapie nic, bo w reżimie VIX 14,9 pasmo nie zdąży się uformować". **DECK ją osłabia:** ścieżka (a) używa **identycznego testu pasma (≤3,5%)** i **odpaliła** — pasmo zeszło z 6,66% (7/31) na **1,884% (8/7)** w cztery sesje. Czyli **mechanizm pasma działa.** Co nie działa: **okno 4 sesji dla mega-capów** — MSFT (pasmo 5,831%), META (5,798%) i GOOG zamknęły się na `session-4`, wszystkie trzy z pasmem 1,7-2,8× nad progiem, czyli **zostały zamknięte, zanim pasmo miało szansę się zwęzić**. Dwa bloki z oknem 7 sesji (CCJ, UBER) padły na `chase_dead`/rajdzie, nie na paśmie. **Do przetestowania na danych: czy MSFT/META/GOOG spełniłyby pasmo ≤3,5% w sesjach 5-7, gdyby okno było dłuższe?** To jest pytanie policzalne wstecz (mam zamknięcia) i rozstrzyga, czy zmieniać okno mega-cap z 4 na 7, czy zostawić.
169
✅ NAPRAWIONE 8/9 — dashboard ukrywał 8 kandydatów i rozwalał komórkę Score dla EWS ✅ done · due weekly-2026-08-09 — Dwa błędy renderera znalezione i naprawione w tym runie, oba przez weryfikację outputu zamiast zaufania do „build success". **(1) Filtr statusu wykluczał `promote_candidate`** w `_render_entry_signals_table` ORAZ w rendererze rękawów — a `promote_candidate` jest **dalej** w pipeline niż `verified` (2 positive_check z rzędu), więc filtr działał odwrotnie do intencji. Skutek: **ET 5/6 — jedyny STRONG w całej puli 51 — nie pojawiał się na dashboardzie**, razem z EXE 4/6, MU 4/6, PBR 4/6, TSM 3/6, CB, ISP.MI, RHM.DE = **8 ukrytych nazw w dwóch miejscach**. Tabela: 39 → **47 wierszy**. **(2) `cycle_reasons` z `<` i `>` rozwalało atrybut HTML** — EWS renderował Score jako „70 (overbought); VIX 14.9" zamiast „4/6 ⚙️⚡ ⚠", bo `>70` zamykało tag w `data-tooltip="..."`; brakowało `_esc()`. **Do zrobienia (nie w tym runie):** test regresyjny, który po każdym buildzie sprawdza, że liczba wierszy tabeli == liczba kandydatów po filtrach, i że żadna komórka Score nie zawiera znaków spoza wzorca `N/M`. **Lekcja procesowa: „✅ Wrote index.html" nie jest weryfikacją — przez nieznany czas dashboard nie pokazywał najlepszej nazwy w puli i nikt tego nie widział, bo build zawsze kończył się sukcesem.**
170
⚠️ aaii.com Imperva bot-block — po wygaszeniu NAAIM to JEDYNA pozostała ankieta ⏳ in progress · due weekly-2026-08-30 — Ujawnione 2026-08-09 przy przebudowie health_check. Check `aaii.com` przeszedł **OK → WARN**: 200 OK, ale payload **6 058 bajtów z Imperva/Distil bot-block** zamiast strony z danymi. Tego samego dnia bezpośredni `requests` z UA przeglądarki **zwrócił pełne dane** (bullish 37,0 / neutral 25,0 / bearish 38,0) — blokada jest **niestabilna i zależna od UA**, nie stała. ⚠️ **Dlaczego waży więcej niż tydzień temu:** po wygaszeniu nogi NAAIM **AAII jest jedynym pozostałym odczytem ANKIETOWYM** w crowded-count. CFTC mierzy pozycjonowanie, nie nastroje — więc nie jest zamiennikiem o tej samej naturze. **Do zrobienia:** (1) ustabilizować fetch (UA + retry + jawny WARN gdy payload <20 kB, żeby bot-block nie przechodził jako sukces — ta sama klasa co fałszywy zielony NAAIM); (2) backfill historii AAII, którego **NIE MAM** — `aaii.com/files/surveys/sentiment.xls` zwraca **403**, więc nogi AAII **nie dało się dziś przetestować backtestem tak, jak przetestowano NAAIM**. **To jest luka wiedzy, nie tylko danych: wiem, że druga połowa composite u nie działała, i NIE WIEM tego o pierwszej.**
171
🔧 Czwarta noga testu stabilizacji rudy — do implementacji (zweryfikowana empirycznie w #144) · due monthly-2026-09-01 — Naprawa **potwierdzona liczbami** w weekly 8/16, brakuje kodu. Do bramy (c) `BUY VALE` T2 dopisać czwartą nogę: **„dno 6M nie zostało pogłębione w oknie 10 sesji"**. Dowód: 8/9 trzy oryginalne nogi mówiły TAK przy TIO=F $98,00, a dno 6M zostało pogłębione do **$93,66 dnia 8/3, czyli wewnątrz okna** — test przechodził na cichym zjeździe. Implementacja razem z guardem z #116 (reguła w prozie bez guardu). ⚠️ Praktycznie brama (c) jest dziś martwa niezależnie (13F Q2 netto −2 zabiło T2), więc to jest **naprawa na zapas, nie pilna** — ale zostawiona bez kodu wróci przy następnym cyklu surowcowym.
172
⚖️ post_event: noga cenowa „cum ≤−5%" mierzona w złym momencie — propozycja z dowodem z #160/#168 ✅ done · due weekly-2026-08-23 — Wynik backtestu z weekly 8/16 (GOOG/META/MSFT, komplet liczb w raporcie): **noga pasma i noga ceny nigdy nie są spełnione jednocześnie**, bo pasmo wymaga trzech zamknięć poeventowych, a cena w reżimie VIX ~14 wraca do trendu w 2-3 sesje. Wydłużenie okna nic nie daje (zweryfikowane: 0 dodatkowych wejść przy oknie 7). **Propozycja: zmienić nogę cenową z „cum ≤−5% W SESJI EWALUACJI" na „cum DOTKNĘŁO ≤−5% w dowolnym momencie okna" (minimum kumulaty, nie wartość bieżąca).** Skutek na danych historycznych: **GOOG odpaliłby PROMOTE na sesji 3 (7/27)** — cum_min −6,89% ✓, RSI 37,91 ✓, pasmo 2,561% ✓; META i MSFT nadal nie (META pasmo ✓ dopiero przy RSI 46,96; MSFT cum nigdy). Czyli **1 wejście z 6 zamkniętych bloków zamiast 0** — i akurat to, o którym raport 7/28 sam napisał, że „sygnał zadziałał, ale nie było czym go zrealizować". ⚠️ **Ryzyko zmiany, zapisane uczciwie: łapanie spadającego noża.** „Dotknęło −5%" znaczy, że kupujemy PO odbiciu od dołka, nie na dołku — trzeba rozstrzygnąć, czy to jest wciąż counter-cycle, czy już pogoń za odbiciem. **Nie zmieniam sam — to zmiana reguły wejścia, wymaga decyzji Dawida.**
173
🚨 Trzy pola makro znalezione jako przeterminowane w jednym runie — wspólna przyczyna: brak właściciela kadencji · due monthly-2026-09-01 — Weekly 8/16 znalazło **trzy niezależne pola** niosące nieaktualne wartości, każde inną drogą: **(1) `finra_margin_debt_b_usd` = 1 221 to odczyt za MARZEC, niesiony przez CZTERY miesiące** — realna wartość lipiec **1 417,2 mld**; i to nie jest kosmetyka, bo stara liczba przy MoM −4,5% opisywała delewarowanie, a prawdziwa seria to **+38,6% r/r**, czyli najszybszy przyrost dźwigni w dostępnej historii. **(2) `retail_sales_yoy` = 7,19 zamiast 5,01.** **(3) cache CFTC przeterminowany o tydzień** — `cftc_helper.py` bez `--refresh` raportował raport z 8/4 jako bieżący, podczas gdy 8/11 był dostępny (44,28 → 44,75% OI, percentyl 66,7 → 70,1). **Wspólny mianownik: pole aktualizowane ręcznie albo cache bez polityki wygasania — czyli DOKŁADNIE klasa defektu, którą audyt 7/30 nazwał przy `nav_usd` i dla której stworzono pole `owner`.** **Do zrobienia:** (a) `finra_margin_debt_*` i `retail_sales_yoy` dostają właściciela (propozycja: **monthly**, bo obie serie są miesięczne) plus WARN walidatora przy staleness >45 dni; (b) `cftc_helper.load_history()` odświeża się **automatycznie**, gdy cache jest starszy niż 8 dni (raport tygodniowy + margines).
174
🔧 Pakiet FRED ma dziurę na 2025-10 — każdy YoY liczony pozycyjnie jest cicho błędny ✅ done · due weekly-2026-08-23 — Znalezione w weekly 8/16 przy weryfikacji inflacji. `get_fred_macro_pack()` zwraca serię CPIAUCSL **bez miesiąca 2025-10** (30 punktów zamiast 31). Skutek: `s.iloc[-1] / s.iloc[-13]` liczy YoY względem **2025-08, nie 2025-07** → **CPI 3,54% zamiast 3,30% (+24bp)** i **rdzeń 2,79% zamiast 2,47% (+32bp)**. 🚨 **Błąd jest cichy i ma kierunek: zawyża inflację, czyli popycha wnioski w stronę „reżim się nie zmienia".** Pola w `macro.md` są **poprawne**, bo liczone po dacie — **i wykryte zostało wyłącznie przez sprzeczność z zapisem post-close 8/12, nie przez żaden guard.** **Do zrobienia:** (a) ustalić, czy dziura jest u źródła (FRED/BLS) czy w naszym fetchu; (b) **każdy YoY w repo liczyć przez `pd.DateOffset(years=1)`, nigdy przez `iloc[-13]`** — audyt wywołań; (c) guard w `health_check`: seria miesięczna z luką → WARN z nazwą brakującego miesiąca.
175
⚖️ KROK 3 — licznik automatyczny rozjechał się z checkiem deliberatnym W OBIE STRONY w jednym runie ⏳ in progress · due monthly-2026-09-01 — Audyt anomalii KROK 3, weekly 8/16. Dwa deliberatne checki (najstarsze daty w puli, obie 2026-05-03) dały werdykty **sprzeczne z licznikiem auto-derived, i to w przeciwnych kierunkach**: **BATS.L** — licznik auto **+1** (score 4/6 ≥4), check deliberatny **NEUTRAL** (2 z 5 negatywów potwierdzone jako nieobecne, 3 niedostępne → próg Lesson #5 ≥3 nieosiągnięty). **SAP** — licznik auto **0/0** (score 3/6 = środek, brak jawnych negatywów → neutral reset), check deliberatny **POSITIVE_CHECK weakly** (3 z 5 potwierdzone, zero negatywów, netto +3 w 13F z dwiema NOWYMI pozycjami). **Przyczyna jest jedna i strukturalna: score mierzy OBECNOŚĆ POZYTYWÓW (6 flag), a Lesson #5 wymaga POTWIERDZONEJ NIEOBECNOŚCI NEGATYWÓW — dla emitentów spoza SEC te dwie rzeczy nie mogą się pokrywać**, bo trzy z pięciu kryteriów negatywnych nie mają scrapera. **Nie nadpisałem liczników ręcznie** (Lesson #7 v2: licznik jest auto-derived, ręczna korekta zniszczyłaby jedyne źródło). **Do rozstrzygnięcia: czy Lesson #7 v2 (auto-counter) i Lesson #5 (evidence) mają koegzystować, a jeśli tak — który wygrywa przy sprzeczności.** Powiązane z #164 i #165, które opisują ten sam szew z innych stron.
176
🔄 Weekly 8/23 framework calibration — recurring od #161 ✅ done · due weekly-2026-08-23 — Weekly 8/23, pięć punktów, każdy z liczbą i porównaniem do dziś: **(1) Crowded-count** dziś **2/5** (SPX 0,17% od ATH · VIX 14,25 = minimum cyklu); AAII **34,7** (zapas do 40 = **5,3 pkt**), CFTC **70,1 pct 5Y** (zapas do progu 75 = **4,9pp**). Czy któraś noga odpala? **(2) Cycle drift:** WTI **69,7** (skoczył +13,8pp w tydzień — czy wraca nad 75 i przywraca flagę Rule #4 na rękawie Energy?); miedź **99,5**, złoto **91,6**, srebro **90,1** — czy któryś schodzi pod 75? **(3) Alpha WTD** dziś **−0,10pp**, z rozbiciem: książka ryzyka **+0,48%** vs IB01.L **+0,10%** przy 40,08% NAV. **Warunek „trzeci tydzień" już spełnił się dziś** — pytanie na 8/23 brzmi inaczej: **czy zapadła jakakolwiek decyzja alokacyjna, czy tylko zapis?** **(4) Czy `ADD INTU` T3 się wykonała** — a jeśli nie, to czy z braku zgody (ryzyko procesu) czy z braku trimu IB01.L (ryzyko kapitałowe, **trzeci raz ta sama przyczyna**). **(5) Czy pula ma z powrotem kandydata STRONG (5/6)?** Dziś **zero, pierwszy raz w cyklu** — jeśli drugi tydzień z rzędu zero, to jest wypowiedź o rynku, nie o skanerze.
177
🔄 Weekly 8/23 cash re-decision — recurring od #162 ✅ done · due weekly-2026-08-23 — Pytanie do rozstrzygnięcia bez zmian: **czy Cash/Yield zbliża się do efektywnego sufitu 32,5%, a jeśli nie — dlaczego.** Stan dziś: **46,23% NAV** (IB01.L 40,08% + wolna gotówka 6,15%) = **+13,73pp nad sufitem**. Cztery rękawy: Tactical **6,99%** (7,0-14,0 — **0,01pp pod krawędzią**, czyli po fillu DECK praktycznie na niej), Income **3,80%** (6,5-13,0), Energy **3,67%** (5,0-7,5), Industrial **1,72%** (2,5-5,0). **Wymagane wyjście:** (a) czy `ADD INTU` T3 + towarzyszący trim IB01.L zostały wykonane; (b) czy pojawił się kandydat przechodzący Rule #4 (dziś **zero**); (c) **jeśli nadal zero, zapisz jawnie po raz drugi, że ograniczeniem jest SYGNAŁ** — i wtedy pytanie przestaje dotyczyć gotówki, a zaczyna dotyczyć tego, czy uniwersum 51 kandydatów jest właściwie dobrane do reżimu, w którym wszystko drogie.
178
⚖️ Pierwszeństwo brama wyjścia vs target rękawa — zaostrzone przez wdrożenie #158(b) ⏳ in progress · due monthly-2026-09-01 — Pozostałość po zamknięciu #158: część (b) (próg odporny na szum) wdrożona 2026-08-16, **część (a) nadal bez reguły**. **Pytanie:** czy `exit_discipline` ma pierwszeństwo przed `sleeve_targets`, czy brama zatrzymuje się na dolnej krawędzi pasma rękawa. **Dlaczego pilniejsze niż przed zmianą:** histereza `reset: 84` sprawia, że epizod `warn` trwa dłużej (powrót nad $80 już go nie kasuje), więc brama będzie **częściej** mówić „trimuj" — a IUES.L waży **3,67% NAV wobec pasma Energy 5,0-7,5%, czyli 1,33pp POD** dolną krawędzią. **Ten sam konflikt występuje niezależnie na VALE:** 1,72% NAV wobec pasma Industrial 2,5-5,0% = 0,78pp pod, przy `gate_b` w stanie `near`. Czyli to nie jest przypadek jednej pozycji, tylko **brakująca reguła pierwszeństwa między dwoma mechanizmami, które oba są poprawne osobno**. **Warianty do wyboru:** (i) brama wygrywa zawsze (dzisiejsze zachowanie de facto, bo nikt nie zdefiniował inaczej) · (ii) brama zatrzymuje się na dolnej krawędzi pasma, a dalsze trimy wymagają jawnej zgody · (iii) brama wygrywa, ale trim poniżej pasma automatycznie tworzy zadanie „odbuduj rękaw innym tickerem".
179
🚨 Pięć tickerów ma `promote_candidate` przy counter.positive=0 — status z nieudokumentowanej ścieżki ⏳ in progress · due monthly-2026-09-01 — Znalezione 2026-08-16 przy wdrażaniu #165 (audyt statusu wobec scalonej reguły promocji). **CB, EXE, MU, PBR, TSM mają status `promote_candidate`, a counter.positive wynosi 0** — czyli ich promocja NIE pochodzi z licznika w ogóle. Reguła prozy (`pos>=2 → promote`) i guard (`pos>=2 AND oversold AND akumulacja`) opisują JEDYNĄ udokumentowaną ścieżkę nadania tego statusu, a te pięć wpisów jej nie użyło. Wnioski możliwe dwa i mają różne skutki: (a) istnieje druga ścieżka nadania (monthly discovery scan? ręczna edycja?), która nie jest nigdzie opisana — wtedy trzeba ją udokumentować albo usunąć; (b) to legacy drift po zmianach reguły, wtedy statusy są po prostu nieaktualne. ⚠️ **Dlaczego to nie jest kosmetyka:** `promote_candidate` jest czytany przez `SCORABLE_STATUSES` w score_all_verified i wchodzi do puli scoringowej, a w raportach czyta się go jako sygnał podniesionej gotowości. Pięć nazw niesie ten sygnał bez pokrycia w liczniku. **NIE cofnąłem ich przy #165** — decyzja Dawida dotyczyła rozjazdu doktryna-vs-guard, a to jest osobna klasa (nie rozjazd dwóch reguł, tylko brak reguły). Guard `promote-audit` w validate_yaml.py raportuje je od dziś przy każdym runie, więc problem jest WIDOCZNY zamiast cichy. **Do zrobienia:** ustalić pochodzenie statusu (git blame na watchlist.md per ticker) → udokumentować ścieżkę albo cofnąć do verified.
180
🚨 `beat_raise` dla emitentow pol-rocznych liczy EFEKT BAZY, nie wzrost zysku — BATS.L 4/6 zamiast 3/6 · due weekly-2026-08-30 — Znalezione 2026-08-23 przy weryfikacji BATS.L jako kandydata. **`yfinance_helper.score_international_corporate` uzywa rocznego proxy EPS dla emitentow raportujacych pol-rocznie** (UK/EU) i zapala `beat_raise`, gdy delta roczna jest dodatnia. Dla BATS.L policzylo **EPS 2024 → 2025 = 1,36 → 3,49 = +156,7%** i flaga sie zapalila. **Ale baza 1,36 sama byla odbiciem po stracie −6,47 z 2023** (odpis ~14,4 mld GBP na papierosy w USA), a przychod spada **cztery lata z rzedu** (27 655 → 27 283 → 25 867 → 25 610 mln GBP). Kontrola z niezaleznego pola: `earningsGrowth` = **−28,6% r/r**. **Czyli flaga mierzy wyjscie z roku odpisu i nazywa to `beat_raise`.** 🚨 **Ekspozycja decyzyjna byla realna i policzalna:** przy 4/6 BATS.L wszedl do strefy entry, licznik dostal +1 (2/0 = prog promocji), a guard `validate_counter_promote` oznaczyl go jako **ACTIONABLE** i zazadal »BUY-proposal-or-verdict«. **Uczciwy score 3/6 nie uruchomilby nic z tego lancucha.** **Do zrobienia:** (a) dodac guard bazy — jesli rok bazowy ma **EPS <= 0** albo delta >100%, flaga NIE zapala sie bez kontroli drugiego zrodla (`earningsGrowth` lub kierunek przychodu); (b) rozwazyc zamiane proxy na **CAGR 3-letni** zamiast delty rok-do-roku, ktora jest z natury wrazliwa na odpisy; (c) przeliczyc pozostalych emitentow pol-rocznych w puli (BATS.L, ISP.MI, SSE.L, VIE.PA) pod tym katem.
181
🔄 Weekly 8/30 framework calibration — recurring od #176 · due weekly-2026-08-30 — Weekly 8/30, piec punktow, kazdy z liczba i porownaniem do dzis: **(1) Crowded-count** dzis **3/5** — noga CFTC odpalila po raz pierwszy (**77,8 pct 5Y**, prog >75, zapas nad progiem 2,8pp). **Czy sie utrzymuje drugi tydzien, czy byla jednorazowa?** AAII **35,5** (zapas do 40 = 4,5 pkt) jest dzis JEDYNYM offsetem trzymajacym licznik na 3/5 zamiast 4/5 — jesli AAII przebije 40, licznik idzie na 4/5. **(2) Cycle drift:** WTI **79,3** (wrocil nad 75, flaga Energy przywrocona) · miedz **99,0** · zloto **95,2** · srebro **91,1** · uran **87,3**. **Czy ktorykolwiek schodzi pod 75?** Dzis cztery z pieciu sa restricted — to najwyzszy stan w cyklu. **(3) Alpha WTD** dzis **+2,3839pp** (portfel +1,0160% vs SPY −1,3680%) = **najlepszy tydzien wzgledny w cyklu**, przy czym ksiazka ryzyka dala **+1,8021%**, a IB01.L **+0,03%** przy 38,27% NAV. **Pytanie na 8/30: czy to byl jednorazowy rozjazd stylu (surowce+wartosc vs growth), czy poczatek serii?** Sprawdz, czy prowadza te same nazwy (VALE +7,04 · ISLN.UK +6,89 · INTU +6,17 · 4GLD +5,43). **(4) Czy `ADD META` $59 + noga finansujaca (trim IB01.L ~$60) zostaly wykonane** — a jesli tylko jedna noga, to KTORA. **Czwarty raz z rzedu pytam o towarzyszacy trim IB01.L** (DECK 8/10 pominiety · INTU T3 8/17 pominiety · slip 8/18 na zlym instrumencie · dzis). **Jesli znow pominiety — to przestaje byc incydent, a zaczyna byc wzorzec wykonawczy do nazwania w doktrynie.** **(5) INTU Q4 FY26 (8/25 AMC) — czy print zdjal cap konwikcji MEDIUM?** Wymagany dowod adaptacji AI (przylaczenie Intuit Assist, bookings GenAI). Pozycja **5,56% NAV**, RSI 68,10 wchodzila w print rozgrzana, **−47,95% od szczytu 52W**. Zapisz werdykt: HIGH / MEDIUM utrzymany / degradacja.
182
🚨 Rekawy cykliczne NIE MOGA osiagnac wlasnych celow w etapie `trim` — nadwyzka gotowki i niedowaga to ta sama regula · due weekly-2026-08-30 — Wyodrebnione 2026-08-23 z #177(c) i #178, bo to nie jest juz pytanie o kolejnosc regul, tylko o **skutek uboczny konstrukcji, ktory utrwalil sie na trzy miesiace**. **Stan:** Cash/Yield **43,90% NAV** = **+11,40pp nad sufitem 32,5%**. Cztery rekawy pod celem: **Energy 3,74%** (pasmo 5,0-7,5) · **Industrial 1,82%** (2,5-5,0) · **Income/Defensive 3,71%** (6,5-13,0) · Precious w pasmie. 🔑 **Trzy z czterech niedowazonych rekawow sa CYKLICZNE — a wobec nich framework robi jednoczesnie dwie rzeczy, ktore sie wykluczaja:** (1) etap `regime_stage: trim` obcina im cele o **50%** (mnoznik 0,5), (2) Rule #4 blokuje wejscia, bo **cztery z pieciu surowcow siedza w bracketach `high`/`top_decile`** (miedz 99,0 · zloto 95,2 · srebro 91,1 · uran 87,3 · WTI 79,3). **Czyli sam haircut juz obnizyl cel, a zakaz nie pozwala dojsc nawet do obnizonego.** Efekt: gotowka nie ma gdzie plynac, a rekawy zostaja pod celem — **i to sa dwa widoki tej samej reguly, nie dwa niezalezne problemy.** ⚠️ Czwarty niedowazony rekaw (Income/Defensive, jedyny NIEcykliczny) potwierdza diagnoze od drugiej strony: **jest otwarty dla Rule #4, a mimo to pusty** — jego najlepszy kandydat dzis (BATS.L 4/6) odpadl na Crit 7, a nie na cyklu. **Do rozstrzygniecia przez Dawida (to jest decyzja o polityce, nie wyliczenie):** (a) czy sufit Cash/Yield ma byc **wiazacy** w etapie `trim`, czy swiadomie zawieszony (dzis jest lamany o 11,4pp i nikt tego nie autoryzowal — override wygaszono 7/30); (b) czy rekawy cykliczne maja w etapie `trim` miec cel **0**, zamiast celu obnizonego i nieosiagalnego — bo dzisiejszy zapis generuje falszywy sygnal »niedowaga do uzupelnienia«; (c) czy uniwersum 51 kandydatow jest wlasciwie dobrane do rezimu, w ktorym **cztery piate rekawa surowcowego jest zakazane** — trzeci tydzien z rzedu ograniczeniem jest sygnal, ale przyczyna jest wewnetrzna.
183
🔧 `nav.py` bez retry — ten sam skrypt daje +0,000% i −2,008% w odstepie kilkunastu minut · due weekly-2026-08-30 — Znalezione 2026-08-23. **`nav.py` uruchomiony samodzielnie: uzgodnienie +0,000%, komplet 14 pozycji wycenionych rozliczonymi zamknieciami 8/21.** **Ten sam skrypt wywolany przez `validate_yaml.py` kilkanascie minut pozniej: cztery pozycje bez ceny (GEHC, MELI, INTU, VALE) → WARN `ROZJAZD NAV −2,008% ($−170,29)`.** Przyczyna nie jest ksiegowa ani semantyczna — **yfinance w tym srodowisku zwraca timeouty losowo**, co potwierdzono niezaleznie w KROK 0 (ten sam fetch MSFT: FAIL / OK / OK w trzech kolejnych probach) oraz w KROK 2 (batch download zgubil 7 z 15 tickerow, per-ticker retry odzyskal 15/15). 🚨 **Dlaczego to wazy wiecej niz zwykly flake: komunikat »ROZJAZD NAV −2,008%« jest NIEODROZNIALNY od realnego rozjazdu ksiegowego** — a to sa dwie zupelnie rozne rzeczy i tylko jedna wymaga reakcji. Walidator uczy wiec ignorowac wlasny alarm. **Do zrobienia:** (a) `nav.py` pobiera per-ticker z **retry + backoff** (wzorzec sprawdzony dzis: 4 proby, sleep 2s → 15/15 pokrycia); (b) przy niepelnym pokryciu **fail-loud z nazwa brakujacego tickera i liczba prob**, NIE cicha wycena po cenie wejscia — bo to wlasnie ona generuje falszywy rozjazd; (c) rozwazyc lokalny cache ostatniego znanego rozliczonego zamkniecia jako fallback. Powiazane z #159 (ta sama funkcja, inna warstwa).
184
🚨 Archiwizacja wierszy catalysts.md jest MECHANICZNA — wiersz z błędną datą archiwizuje się jak poprawny · due weekly-2026-08-30 — Znalezione 2026-08-23 na sobie samym. Ten run napisal w `catalysts.md` **Jackson Hole 8/20-22 ROZSTRZYGNIETE**, mimo ze **Lekcja #47 z 2026-08-21 poprawila te date o tydzien** — sympozjum jest **8/27-29** (potwierdzone niezaleznie: Kansas City Fed). Czyli zdarzenie o randze rezimowej zostalo opisane jako zamkniete **dwa dni po tym, jak framework poprawil jego date**, i wyladowalo w oknie 'zarchiwizowane' zamiast w oknie 'nadchodzace'. Zlapane w tym samym runie przy czytaniu journala, ale **dopiero po zapisie pliku**. 🚨 **Mechanizm: KROK 8a wymusza przesuniecie NAGLOWKOW okna (`Ten tydzien` x2), ale archiwizacja wierszy jest operacja czysto mechaniczna — `data < dzis` → wytnij.** Wiersz z BLEDNA data przechodzi ten test tak samo gladko jak poprawny, a po archiwizacji blad **zyskuje status faktu dokonanego** i nie ma juz gdzie zostac zauwazony. **Do zrobienia:** (a) przy archiwizacji wiersza oznaczonego 🚨/🚨🚨 (ranga rezimowa) wymagac **potwierdzenia daty z zewnetrznego zrodla** przed wycieciem, zamiast samego porownania dat; (b) dopisac do checklisty KROK 8a punkt 'czy zdarzenie oznaczone jako rozstrzygniete FAKTYCZNIE sie odbylo'; (c) rozwazyc pole `date_verified_on` przy wierszach o randze rezimowej. 📌 To jest **druga strona** tej samej checklisty, o ktorej mowi Lekcja #47 ('pilnuje tylko jednej strony') — tam chodzilo o naglowki, tu o tresc.
185
🚨 finviz_helper.get_market_insider() ZEPSUTY — regresja upstream między 8/21 a 8/24 ✅ done · due weekly-2026-08-30 — `finvizfinance/insider.py:67` robi `self.soup.find_all("table")[6]`, a strona Finviz podaje dziś **2 tabele** — dane insiderskie siedzą pod indeksem **1**. `IndexError: list index out of range` na wszystkich trzech opcjach (`latest` / `latest buys` / `latest sales`). **Regresja jest świeża: post-close 8/21 raportował 400 przeskanowanych wierszy Form 4, dziś zero.** 🔑 **Klasa defektu jest ta sama co #134 (`screen_quality_value()`): zależność od pozycyjnego indeksu w HTML strony trzeciej.** Poprawka powinna szukać tabeli **po nagłówkach** (`Ticker`/`Owner`/`Relationship`/`Date`/`Transaction`), nie po numerze — wtedy kolejna zmiana layoutu jej nie zabije. ⚠️ **Do rozstrzygnięcia osobno: czy KROK 7 ma failować głośno.** Dziś helper rzucił wyjątek i to było dobre — ale gdyby zwrócił pustą listę, raport napisałby »zero trafień insiderskich« i **brak danych byłby nieodróżnialny od braku sygnału** (Lesson #5: »data unavailable ≠ confirmed absence«).
186
🔧 exit_discipline.py — CLI bez `--as-of`, próg liczony na wczorajszych zamknięciach · due weekly-2026-08-30 — `evaluate(as_of=...)` przyjmuje parametr, ale `_cli()` go **nie wystawia** i woła `evaluate()` bez argumentu. Skutek: `nav.py` pomija bar dnia bieżącego (Lekcja #30, słusznie dla runów śródsesyjnych), więc **post-close — jedyny run z rozliczonymi zamknięciami dnia — porównuje `stop`/`target` z cenami WCZORAJSZYMI.** 📌 **Dziś bez skutku i to jest jedyny powód, dla którego to jest `default`, a nie `blocker`:** oba warianty (`as_of` 8/24 i 8/25) dały **0 trafień**. Ale progi wyjścia są jedyną regułą w systemie, która ma zamykać pozycje — **dzień opóźnienia na stopie to dzień, w którym stop nie działa.** Poprawka: `ap.add_argument("--as-of")` + przekazanie do `evaluate()`, i wywołanie w SKILL-cie z `--as-of {jutro}`. Ta sama uwaga dotyczy `cash_buffer.py`, który flagę **ma** — czyli asymetria jest przypadkowa, nie zaprojektowana.
187
🚨 Trzy pola `insider_buying` rozjechane z rzeczywistością — ujawnione przez naprawę #185 · due weekly-2026-08-30 — Skan po naprawie helpera (882 wiersze, 13 trafień) daje trzy sprzeczności z `watchlist.md`, wszystkie na nazwach decyzyjnie żywych: • **BABA** — `status: rejected`, `last_scored: 2026-07-26`, `insider_buying: {met: false, "0 buys 30d"}`. **Dziś dwa zakupy insiderskie tego samego dnia: Tsai Joseph C (Director, współzałożyciel) $10,29 mln + Wu Yongming (CEO) $4,98 mln = $15,27 mln.** Pole ma miesiąc i jest jawnie sprzeczne. BABA otworzyła −1,74%. • **MU** — `status: promote_candidate`, `insider_buying: {met: true, "2 insider buys 30d"}`. **Skan pokazuje CLUSTER SELLING: 3 zgłoszenia / 2 członków zarządu / 4 sesje / $67,6 mln** (Mehrotra $39,59 mln, Sadana 2× $14,01 mln). **Pole niesie sygnał kupna w nazwie, z której zarząd wychodzi** — a status to `promote_candidate`. MU −6,87% na otwarciu. • **ET** — `insider_buying: {met: true, "5 insider buys 30d"}` zgodne co do kierunku, ale **nie zna skali**: Kelcy Warren (założyciel) kupił **$21,26 mln w dwie sesje (18-19 sie)** = największy zakup insiderski w skanie. ⚖️ **Post-close świadomie NIE wystawił tu żadnej rec** — wszystkie trzy to watchlista, a flash-BUY na watchlist bez pełnej oceny counter-cycle jest framework-bypassem (doktryna 2026-04-28). **Ocena należy do KROKU 5 weekly.** 🔑 **Pytanie szersze, które te trzy przypadki stawiają razem: jak długo `entry_signals` mogą być stale, zanim przestaną być sygnałem?** BABA ma pole sprzed miesiąca na nazwie odrzuconej — czyli odrzucenie utrwala stan wiedzy z dnia odrzucenia i nic go nie odświeża.