α
AlphaSteve
← Brain index

Optimization Backlog — open improvement items

Tier 2 changes (per Rules) — proposed by the daily optimization run, awaiting user review or evidence accumulation. Items get closed when implemented (moved to Closed/) or when evidence shows they're not needed.

Mission-anchoring test for every entry below: does this materially improve our ability to find, evaluate, or act on durable equity mispricings? See 00-mission. If an item cannot answer that in one sentence, it does not belong on this list.

Priority: P1 (clear gap, high-frequency need) · P2 (real gap, moderate frequency) · P3 (nice-to-have)

P1 — Closes file MISSING at portfolio-daily run time 2026-06-30 ~19:49 ET (NEW 2026-06-30, reliability)

  • What: No 13-Research/Daily-Scans/2026-06-30-closes.md file exists at the portfolio-daily run. This is distinct from the June 15–26 not-yet-settled (early-cron) streak: there the PM scan fired and wrote a file before the cash close; here no closes file was written at all for June 30. The most recent closes file is 2026-06-29-closes. Per benchmark-sourcing-discipline the reader rule on a missing file is: carry the prior settled/derived references throughout, do NOT web-pull as a fallback, and log this P1. June-29 references carried for SPY (derived $737.62 / cum −1.55%), RPV/RPG (June-8 estimates, now 16 sessions stale), and all pipeline names (PLTR $118.08, CAG $14.08, MP $55.62).
  • Why (mission test): the canonical closes file is the single price-anchor surface for NAV, alpha, kill-criteria, and watchlist-trigger checks; when it is absent the daily check cannot mark the book to a current settled close, so the day's alpha and drawdown are carried, not measured. A missing PM-scan output is a harder reliability defect than a mistimed one — it suggests the PM scan did not run (or failed silently) on June 30, the first such total miss after the June-29 clean run.
  • Evidence: directory listing of 13-Research/Daily-Scans/ on 2026-06-30 shows no 2026-06-30-* files (latest is the 2026-06-29 cohort); 2026-06-29-closes is the carried basis. Pairs with the standing P1 deterministic-ingestion / PM-scan-cron items below — recommend a scheduled-task execution-log check for the June-30 PM scan (did it fire? did it error?).
  • Priority: P1 — affects the canonical performance ledger and the daily price-anchor chain; a total file-absence is more severe than the timing miss it sits next to.
  • Execution scope: Tier 2 — root cause is in the PM-scan schedule/reliability, which the daily run cannot fix to itself. For the user / next builder.
  • Status: open.

P2 — Near-Miss-Ledger file does not exist (NEW 2026-06-29, ledger hygiene)

  • What: Shadow-Book names Near-Miss-Ledger as its companion ledger (passed-but-never-pass-with-trigger names) and the daily portfolio task's M1 mandate instructs marking both every run, but the file 12-Portfolio/Near-Miss-Ledger.md has never been created. The 2026-06-29 portfolio-daily run could mark the Shadow Book (3 entries) but had no Near-Miss-Ledger to mark. Scaffold the file with the same live-mark discipline as the Shadow Book, seeded with the passed-but-shelved names already surfaced: LULU (value-trap, guide-cut), GIL (short-report dislocation, shelve-with-trigger $40), the GO/LOVE/FCBM insider-cluster names (flag-for-deeper-work, no thesis), ADBE (seven-year-low, first-read owed), KMX/BDX (Tier-2 radar).
  • Why (mission test): the Near-Miss-Ledger is half of the over-conservatism tripwire the external-audit-2026-06-28 built — it measures the cost of names that never even reached pass-with-trigger. With the file missing, that half of the self-correction mechanism is blind, exactly the empty-placeholder failure the audit flagged for the Shadow Book.
  • Evidence: Shadow-Book §Linked (references Near-Miss-Ledger); Daily-Notes/2026-06-29.md §"Miss-tracker marks"; the M1 mandate in the portfolio-daily SKILL.
  • Priority: P2 — a real, recurring gap (every daily run owes a mark it cannot make), but the data is reconstructable and no capital decision turns on it today.
  • Execution scope: Tier 2 — creating a new ledger file is a structural change to the portfolio record set. For the user or the next builder.
  • Status: open.

P3 — JPMorgan S&P 500 target baseline conflict in the 2026-06-27 PM note (NEW 2026-06-28, source discipline)

  • What: The 2026-06-27 PM note records JPMorgan raising its 2026 year-end S&P 500 target "to 7,800 from 7,200, roughly 5% above Friday's close" (§"Top of mind," line 13, and §"House view changes this run"). Web verification this run confirmed the new 7,800 target, but Reuters and Yahoo Finance both report the immediate prior target was 7,600, not 7,200 — a +200 raise, not +600 — and put 7,800 about 6% above the last close, not about 5%. The note cites Kiplinger, which may have referenced JPMorgan's original 2026 target (7,200) rather than the most recent (7,600); this reads as a same-tier T3 source conflict, not a clear transcription error. Re-anchor the baseline to "from 7,600" per Reuters and correct "roughly 5%" to "roughly 6%."
  • Why (mission test): the note's analytical point — sell-side targets rising into a de-rating tape, the consensus-versus-price gap the equity-cycle position tracks — survives either baseline, since a raise is a raise. But the canonical record should carry the right prior target and the right gap to the close, and "from 7,200" overstates the move JPMorgan actually made by 3x.
  • Evidence: 2026-06-27-PM §"Top of mind" and §"House view changes this run"; Reuters, Yahoo Finance, and Finimize reporting pulled this run (prior target 7,600; about 6% above a last close near 7,365).
  • Priority: P3 — the new target is right and the read survives; the fix re-anchors a baseline figure.
  • Execution scope: Tier 2 — editing a research note figure is analytical, and the correction rests on a T3-vs-T3 conflict rather than a primary-source discrepancy. For the user or the next builder. The verification run treated the enumerated in-scope categories (earnings, guidance, stock reactions, deal terms, macro releases) as clean and surfaced this sell-side-target nuance for that judgment, consistent with the 2026-06-16 Cursor-multiple handling.
  • Status: awaiting approval. If the user judges the baseline a discrepancy rather than a clarification, the verification counter (now 2) resets to 0 and this becomes an audit-log entry; the run treated it as clean on the enumerated categories.

P3 — AI-buildout-financing long-form sizes the financing channel on off-whitelist T3 sources (NEW 2026-06-27, source discipline)

  • What: 2026-06-26-ai-buildout-financing-turn-v1 sizes the financing channel — the dossier's load-bearing claim that the channel is large and fragile — partly on figures from outlets tagged T3 but off the sources-policy whitelist: hyperscaler bonds ~$121B in 2025 and ~$450B cumulative private-fund tech debt (Bisnow, a commercial-real-estate trade publication), and ~$120B of AI debt moved off balance sheet (Cryptopolitan, a crypto-news site that is T4-adjacent). The framework spine is properly sourced — the telecom base rate (Wolman, T2), Baker-Wurgler and Cooper-Gulen-Schill (T2), Chancellor (T2), and BIS Bulletin 120 / IMF GFSR (T1) — and BIS 120 already supplies adjacent figures at T1 (direct AI lending $3B→$40B, ~4% of direct loans, ~11% GPU-facility rates). The gap is specific to the bond / private-credit / off-balance-sheet aggregates. Re-anchor those three figures to BIS Bulletin 120 where the number exists, or downgrade to an explicit estimate where it does not.
  • Why (mission test): the dossier's central claim is that the financing channel is the binding constraint; if the channel's size rests on trade-press and crypto-news aggregates, the load-bearing premise is the consensus figure dressed up — the exact failure sources-policy exists to prevent.
  • Evidence: 2026-06-26-ai-buildout-financing-turn-v1 §"The financing channel, sized — it is not just equity" (the Bisnow $121B/$450B and Cryptopolitan $120B cites) and §Sources.
  • Priority: P3 — the figures are directionally uncontroversial and the argument survives a re-sourcing; the fix is re-anchoring, not removal.
  • Execution scope: Tier 2 — re-anchoring a long-form's load-bearing citations is analytical. For the user or the next builder. Third dated instance of the off-whitelist-T3-as-load-bearing family (with the standing Substack / SemiAnalysis / UncoverAlpha items); pairs with the quarterly source review.
  • Status: awaiting approval.

P3 — Hyphenated compound-noun labels in the 2026-06-26 AM/PM notes brush the voice-and-style ban (NEW 2026-06-27, style discipline)

  • What: The 2026-06-26 AM and PM notes use three- and four-word hyphenated compound nouns that voice-and-style bans under "compound-noun phrases of three or more words joined by hyphens or slashes." The clearest are "AI-financing-and-cost-sustainability scare" (AM §Implications) and its sibling "cost-and-financing-sustainability version" (AM and PM, used repeatedly as a noun). The coined theme labels "deleveraging-versus-rotation discriminator" and "defensive-rotation paradox" sit at the edge — they are deliberately named labels with plain-English definitions attached, which earns them more latitude than a compound buried mid-claim. Rewrite the first family to a plain construction (e.g., "the fear that the buildout's financing, not its demand, is the binding cost"); judge the named labels case by case.
  • Why (mission test): voice-and-style exists so the analytical claim is parseable on one read; a four-word hyphenated noun used as the subject of a recommendation is the construction the file names as the failure mode, even when the surrounding note is otherwise clean.
  • Evidence: 2026-06-26-AM §Implications ("Reinstate the AI-financing-and-cost-sustainability scare as an active watch item") and §House view reconciliation; 2026-06-26-PM §Themes emerging and §House view reconciliation.
  • Priority: P3 — cosmetic; the notes are otherwise within voice. Style rewrites change wording, so Tier 2 per the optimization task's style-discipline rule (do not auto-rewrite).
  • Execution scope: Tier 2 — for the user or the next builder.
  • Update 2026-06-28 (recurrence): the 2026-06-27 PM note carries the same pattern — "AI-financing-and-regulation cluster," a four-word hyphenated noun used as the subject of a recommendation (§"Themes emerging," §"Implications for AlphaSteve," §"House view changes this run"). Like "deleveraging-versus-rotation discriminator," it is a coined label with a plain-English definition attached, so it earns the same latitude — flagged, not auto-rewritten. Third dated instance of this family. Plain rewrite: "the cluster where the buildout's financing and its regulation tighten together."
  • Status: awaiting approval.

✓ Closed 2026-06-26 — Reconcile the two 2026-06-24 Micron FQ3 artifacts against the 8-K (was P2; NEW 2026-06-25, audit-log #019; RESOLVED by audit-log #020)

CLOSED 2026-06-26 — resolved by the verification run, not deferred. Web access was available on the 2026-06-26 optimization run (as it was for the FedEx pull in #018), so the figures were adjudicated against the Micron FQ3 earnings release: reported gross margin 84.9% (record; GAAP 84.6%) — the long-form was right and the "81%" was the pre-print FQ2 guide — and the post-print reaction was a large re-rate (13%; SK Hynix +12%; Micron +17% cash close), so the PM note's "+6% to 16%" was right and the long-form's "3% muted" was wrong. A split decision: each 06-24 artifact had one figure right and one wrong. Both figures were corrected in place across the propagation surface (nine gross-margin sites in five files; three after-hours sites in the 06-24 long-form) with [corrected 2026-06-26 — see audit-log #020] markers. The opposite-signed house-view concern is moot: the 06-25 PM note had already retired the over-extrapolation variant and re-grounded the bear lean on the supply curve, which the corrected reaction figure supports. Audit-log entry #020 is the canonical record. One follow-on Tier 2 remains — the 06-24 long-form's conclusion prose (see the next item). Original item preserved below.

(original item, now closed)

  • What: Two pieces filed the same evening describe the Micron FQ3 print differently on two quantitative facts and reach opposite conclusions. The 2026-06-24 PM research note records gross margin "near 81%" (four sites) and an after-hours move of "+6% to 16%," reading the stock as re-rating higher and scoring it as the over-extrapolation variant losing its near-term test. The 2026-06-24 technology long-form records GAAP gross margin 84.6% (cost of goods $6.40B on revenue $41.46B) and an after-hours move of "3%," reading the muted move as the asymmetry favoring the variant. Revenue ($41.46B) and EPS ($25.11) agree. The two pieces propose opposite-signed updates to the "AI infrastructure capacity" house-view position. Reconcile both against the Micron FQ3 8-K (gross margin and the settled after-hours reaction), correct the loser in place with markers, and align the house-view update.
  • Why (mission test): the AI-infrastructure variant is a load-bearing house-view position; two same-day artifacts that score it in opposite directions off contradictory tape reads leave the position incoherent until reconciled, which directly degrades the ability to act on the read.
  • Evidence: audit-log entry #019; 2026-06-24-PM (gross margin "81%" and "+6% to ~16%" at the cited sites); 2026-06-24-micron-fq3-contracted-peak-not-structural-break (84.6% and "3%").
  • Priority: P2 — material within-vault contradiction on a house-view position; the fix is analytical (which figure is right) and requires the primary 8-K.
  • Execution scope: Tier 2 — correcting a research note / long-form figure changes analytical content, and adjudication needs the Micron FQ3 8-K (EDGAR fetch currently blocked; pair with the standing EDGAR-access item). For the user or the next builder, not the optimization run.
  • Status: awaiting approval / primary-source access RESOLVED 2026-06-26 (audit-log #020). Ground truth was establishable this run via web access (the earnings release), the contradiction is adjudicated, and both figures are corrected in place. Closed.

P3 — Realign the 2026-06-24 Micron long-form's "asymmetry favors the variant" conclusion to the corrected after-hours figure (NEW 2026-06-26, audit-log #020)

  • What: 2026-06-24-micron-fq3-contracted-peak-not-structural-break built its §"The tape already half-knows" subsection and its variant-perception conclusion on the premise that the print drew "only 3%" after hours — "when the best possible print produces a 3% move, the marginal buyer is already long the structural story … the asymmetry favors the variant." Audit-log #020 established the reaction was a large re-rate (13%; cohort SK Hynix +12%; Micron +~17% cash close), so the muted-tape premise is false and that conclusion does not hold. The figure has been corrected in place with markers and the subsection flagged, but the analytical prose itself was left intact for the record. Rewrite the subsection and the variant-perception passage so the conclusion rests on the supply-curve / capital-cycle argument (which survives) rather than the falsified muted-reaction read.
  • Why (mission test): the long-form is the canonical statement of the memory capital-cycle variant; leaving a conclusion that rests on a falsified premise standing in it misleads any future reader who pulls it as the reference, even though the net house view is already correct.
  • Evidence: audit-log entry #020; 2026-06-24-micron-fq3-contracted-peak-not-structural-break §"The tape already half-knows" and §"Variant perception"; the corrected figure and markers in the same file; the 06-25 PM note's independent re-grounding 2026-06-25-PM.
  • Priority: P3 — the bear thesis survives on the supply curve (the 06-25 work already carries it); this is cleanup of a now-internally-inconsistent dated long-form, not a live-position fix.
  • Execution scope: Tier 2 — rewriting a long-form's analytical conclusion is beyond a figure correction. For the user or the next builder.
  • Status: awaiting approval.

P3 — Grocery Outlet first-read: internal net-debt inconsistency (NEW 2026-06-25)

  • What: GO/first-read-2026-06-24 cites "$489.3 million of net debt at quarter-end" (and "$489 million" in the risk section) but the back-of-envelope EPV "Subtract[s] $430 million of net debt" — a ~$59M gap, coincidentally equal to the $59.0M cash balance, suggesting cash may have been netted twice. The shelf decision (trigger $7.25) does not hinge on it — the EPV band $5.40–7.00 sits below the ~$9.47 price either way — but the input should be consistent.
  • Why (mission test): a clean EPV input is what makes the shelf trigger defensible when the name returns to range; an unexplained net-debt figure weakens the re-engagement math.
  • Evidence: GO/first-read-2026-06-24 §"Business in a paragraph" ($489.3M) vs §"Back-of-envelope valuation" ($430M).
  • Priority: P3 — does not change the decision; a one-line input fix.
  • Execution scope: Tier 2 — editing a first-read's valuation input is analytical and rests on the GO 10-Q. For the user or the next builder.
  • Status: awaiting approval.

P3 — Micron long-form leans on a Substack for the memory-cycle base rates (NEW 2026-06-25, source discipline)

  • What: 2026-06-24-micron-fq3-contracted-peak-not-structural-break rests its memory-cycle base rates — the prior all-time gross-margin peak of 58.9% in 2018, the 2019 bust after Samsung added >50% capacity, and the 2023 below-cash-cost trough — solely on UncoverAlpha, an equity-research Substack. Per sources-policy a Substack is T4-adjacent and should not be the only source for load-bearing base-rate evidence. Re-anchor the 58.9% 2018 peak and the 2023 trough to a primary/T2 source (Micron historical 10-Ks for the margin prints; an industry-data or academic source for the cycle history).
  • Why (mission test): the variant's "the cycle always ends" spine is only as strong as the base rates under it; a base rate sourced to a single blog is the consensus narrative dressed up, the exact failure sources-policy exists to prevent.
  • Evidence: 2026-06-24-micron-fq3-contracted-peak-not-structural-break §"The setup" and §Sources (the UncoverAlpha cite as the sole authority for the 58.9% peak and the 2023 negative-margin claim).
  • Priority: P3 — the base rates are directionally uncontroversial; the fix is re-sourcing, not removing.
  • Execution scope: Tier 2 — re-anchoring a long-form's load-bearing citations. For the user or the next builder; pairs with the quarterly source review.
  • Update 2026-06-26 (recurrence): the 2026-06-25 markets long-form 2026-06-25-record-raise-supply-curve repeats the pattern — its memory-cycle base rates (the 4–7-quarter boom / 4–8-quarter bust shape, "−25% to −40%" revenue moves, the 1995-96 "50 fab plans / capex above 30%" history, and the 58.9%/2023 figures) rest on SemiAnalysis and UncoverAlpha as the sole authorities, both named-author newsletters that are off the sources-policy T3 whitelist. The Baker-Wurgler, Cooper-Gulen-Schill, Chancellor, and Reinhart-Rogoff cites in the same piece are properly T2; the gap is specific to the memory-cycle base rates. Re-anchor both long-forms together (Micron historical 10-Ks for the margin prints; an industry-data or academic source for the cycle history). Two dated instances now.
  • Status: awaiting approval.

P1 — Deterministic market-data ingestion layer (BUILT 2026-06-23; wiring + schedule = Tier-2, awaiting user action)

User commissioned and authorized a fully deterministic ingestion layer to end the news-read/hand-typed price surface that dominates the audit log. Built and offline-validated 2026-06-23. This is the price-side companion to the 2026-06-10 data-integrity-gate (which fixed the fundamentals side via EDGAR).

What was built (done):

  • _Tools/marketdata/market_close.py — deterministic EOD puller (stdlib only). Sharadar SEP (equities) + SFP (SPY/QQQ/DIA/IWM/GLD index/commodity proxies) + FRED (DGS10, DGS2, VIXCLS, WTI, Brent). Writes 13-Research/Daily-Scans/<DATE>-closes.md + <DATE>-closes.json provenance manifest.
  • config.json (universe), secret.local (key, git-ignored), fixtures/ + --selftest, README.md.
  • market-data-ingestion-standard — the T0 framework doc.
  • Validated offline end-to-end: closes file + manifest generate correctly; PLTR/CAG/MP day-moves reconcile to the vault; settlement gate refuses a same-day close on a pre-16:15-ET fire (the exact 15:38-ET early-fire bug); STALE/MISSING degrade to partial rather than fabricate; no-key/no-network → writes nothing, exits non-zero.

Connectivity finding (why the puller is host-run, not an agent task): verified 2026-06-23 — the agent sandbox cannot reach market-data APIs. Bash networking is firewalled (all hosts 403); the web-fetch allowlist serves data.sec.gov (renders) but returns empty for data.nasdaq.com (Sharadar) and api.stlouisfed.org (FRED API). A scheduled agent task therefore physically cannot pull Sharadar. The puller runs on the user's machine (real internet) after the close and writes into the vault; the agent reads the artifact.

Tier-2 items requiring user action (the agent cannot do these to itself):

  1. Schedule the host puller — Windows Task Scheduler, ~18:15 ET weekdays (after Sharadar's ~17:30 ET refresh). Steps in _Tools/marketdata/README.md.
  2. Fix the PM-scan / portfolio-daily cron timezone offset — the live root cause of the closes-not-yet-settled P1 stack below. Per the scheduled-task list, the PM scan's next fire is 19:38 UTC = 15:38 ET, before the 4:00 PM cash close; portfolio-daily fires 20:00 UTC = 16:00 ET. Both run ~1 hour early vs their intended ET times. Move them past settlement.
  3. Wire the reader tasks — point PM scan / portfolio-daily / AM scan at the script-written closes file per benchmark-sourcing-discipline (they already read that path; the change is that the file is now script-written, and they must not re-pull). Folds into the staged P1 benchmark-sourcing package below.
  4. Optional: if data.nasdaq.com can be added to the agent web-fetch allowlist, the same puller logic could run in-agent; until then, host-run is the only viable path.

Supersedes / resolves on implementation: the standing P2 — PM-scan run-time gap item and the consecutive P1 — Closes file not-yet-settled items (06-15 onward) — all the same fired-before-close fault, all fixed by items 1–2 above. The P1 — Benchmark-sourcing Discipline Package (staged) is the wiring half (item 3); its "hard settled-close anchor" provision is now satisfied by the deterministic settled pull.

Evidence: audit-log entries #003, #005–#010 (benchmark transcription), #011/#014/#015 (closes-file faults); the closes-not-yet-settled P1 stack below; the GIS forward-date error corrected 2026-06-23 (GIS-calibration) as the event-date class this standard routes through the issuer.

Execution scope: the tooling is built and reversible (additive _Tools/ files + one framework doc). Items 1–3 are Tier-2 (schedule + task-prompt changes) and need user action per Rules.

✓ IMPLEMENTED 2026-06-10 — Seven hard doctrine changes (user-signed-off)

User commissioned an expert critique of the kit and signed off on seven structural ("hard") changes addressing the weaknesses surfaced. All implemented 2026-06-10. Full record: changelog-2026-06-10-hard-changes. These are Tier 2 changes executed under explicit user authorization.

  1. Banded valuation + ±20% sensitivity-flipbanded-valuation-standard. No point-estimate values; High/Med/Low confidence tag caps conviction tier; growth value must survive −20% ROIIC/runway shocks or fall back to EPV-only. Wired into investment-thesis-template §5, 05-decision-framework Gate 3, margin-of-safety-pricing.
  2. Data-integrity gatedata-integrity-gate. Figure-level T1 citations; fundamentals via connectors not web reconstruction; entity-confirmation block; EPV input reconciliation. Sits between Gate 3 and Gate 5; verdict withheld until ticked. Closes audit #001/#003/#012/#013 classes.
  3. Independent red-teamred-team-protocol. Blind bear brief by a fresh agent for every buy/pass-with-trigger; answered point-by-point; ≥35% break-probability caps below Core. New bundle file <TICKER>-red-team.md.
  4. Shadow book + near-miss ledgerShadow-Book, Near-Miss-Ledger. Generate decision data while cash; make passes scoreable; measure waiting-cost and wrong-pass rate.
  5. Retrospective backtestretrospective-backtest. Harness + initial N=12 directional run (pending T1 figure-level re-pull). First read: strong permanent-loss avoidance, systematic compounder-miss (over-conservatism).
  6. Overhead cut ~halfcadence-and-overhead-v2. One EOD note default (AM event-driven only); four-way shadow matrix reserved to continue-stage; benchmark tracking consolidated (SPY daily, RPV/RPG weekly); cash-day note collapses to one line.
  7. SaaS + short modules / mandate boundarysaas-economics, short-and-pessimism, and an explicit long-only/equities mandate boundary in 00-mission.

Follow-up items opened by these changes (do not require re-approval; normal pipeline):

  • P1 — Re-pull the retrospective-backtest N=12 figures at figure-level T1 via the data connectors; recompute the three compounder-miss cases properly; expand to N≥20 across regimes. Owner: calibration cadence.
  • P2 — Retrofit existing theses (PLTR, CAG, MP) to the banded standard + confidence tags + red-team brief at their next scheduled refresh (not as an emergency, per bundle-standard convention).
  • P2 — Add the data-integrity gate checklist and red-team step to the alphasteve-thesis-builder task prompt; add the one-line cash-day collapse + weekly RPV/RPG to the alphasteve-portfolio-daily task prompt; switch default note cadence in the scan tasks to EOD-plus-event-driven-AM. (Tier 2 task-prompt edits — flagged for the next scheduled-task review.)

✓ IMPLEMENTED 2026-06-10 (second batch) — EDGAR-only structured-data pipeline (user-signed-off)

User selected EDGAR-only routing (no paid connectors) for hard-change #3 and approved full setup. Implemented same day: _Tools/edgar/ toolkit (normalizer + concept map + CIK registry), edgar-fundamentals-standard, data-integrity-gate Rules 2–3 rewritten to mechanical EDGAR routing, four scheduled-task prompts updated. Validated end-to-end on MP (16 concepts, 6 FY + 8 Q, entity gate passed) and CAG resolver (which exposed a wrong hand-typed CIK inside Rule 3 itself — fixed). Full record: changelog-2026-06-10-edgar-pipeline.

Supersedes: the "via the data connectors" language in the P1 retrospective-backtest re-pull item below — that re-pull now routes through the EDGAR pipeline.

Follow-ups opened (Tier 1, mechanical): retrofit PLTR + remaining thesis names into the registry and fundamentals files at next touch; MP EPV recompute (open P2, audit #013) must cite MP-fundamentals.md; extend concept-map to ifrs-full when the first ADR enters the pipeline.

✓ Resolved 2026-06-09 — Canonical closes file missing (logged 2026-06-08)

  • RESOLVED 2026-06-09 by evidence (resolution path (a)). The 06-08 PM scan wrote 13-Research/Daily-Scans/2026-06-08-closes.md — it exists and self-describes as "the first canonical closes file in the stream." The PM scan is therefore now writing the closes file per benchmark-sourcing-discipline; the structural "no closes file exists anywhere" premise is obsolete, and no PM-scan prompt change is needed to create the file. The June-5 gap that triggered this item was a one-time artifact of the discipline post-dating that trading day. Note: this closure is about existence, not quality — the 06-08 closes file's figures were wrong (audit-log #011), but that is a sourcing-quality problem now tracked under the standing P1 benchmark-sourcing-package item, not a missing-file problem. Original item preserved below.

(original item, now resolved)

  • What: Per benchmark-sourcing-discipline the PM scan must write 13-Research/Daily-Scans/<trading-day>-closes.md for the next AM scan to read. No closes file exists for 2026-06-05 (the prior trading day), and in fact no *-closes.md file exists anywhere in 13-Research/Daily-Scans/. The 2026-06-08 AM scan fell back to the Friday closes embedded in the 2026-06-07-PM research note with an explicit gap note.
  • Why this matters (mission test): the AM scan's market-context and watchlist/portfolio price anchors depend on a verified prior-close source; an absent canonical file forces an undisciplined web re-pull or a research-note fallback, which is the exact failure the benchmark-sourcing discipline was written to prevent.
  • Resolution (one of): (a) confirm the PM scan task is actually writing the closes file and fix it if not, or (b) if the closes file was never part of the PM task's output, add it. Either restores the canonical handoff.
  • Priority: P1 — affects the daily price-anchor chain for every AM scan.
  • Execution scope: Tier 2 — likely needs a PM-scan prompt change, which the daily scan cannot make autonomously.

✓ Closed 2026-06-02 — Build full thesis on CAG (escalated from first-read 2026-06-02) [COMPLETED 2026-06-02]

  • What: Full thesis on Conagra Brands (CAG) per the investment-thesis-template. Escalated from CAG/first-read-2026-06-02 with continue verdict.
  • Why: Surface MoS of ~38% at trough EPV against the $13.25 reference price; April 14 two-director open-market cluster buy ($608K combined at $14.31, now ~7% underwater); structural twin to yesterday's GIS/first-read-2026-06-01 consumer-staples derate setup. The hinge — moat-vs-trap and dividend-cut probability — required full-depth treatment, not shelf-with-trigger.
  • Status: COMPLETED 2026-06-02 by alphasteve-thesis-builder autonomous run. Bundle filed at 09-Theses/CAG/CAG - JUN2026/ with CAG-thesis, CAG-shadow-matrix, CAG-consensus-gap, CAG-calibration. Landing file CAG published. Verdict: pass-with-trigger at $11.50 trigger / $24 central value (Greenwald-modified, EPV-only fallback because growth-runway gating test fails clean). Routed to Watchlist row. Next checkpoint: 2026-07-15 (Q4 FY26 print and FY27 initial guide).

P3 — Forward-looking coverage gap (robotics, space, advanced defense, quantum) — deferred to November 2026 six-month review

  • What: User flagged 2026-05-28 that AlphaSteve has no coverage of robotics, space exploration, advanced defense tech, or quantum computing — sectors where the deep-value frame may have surfaceable mispricings but which currently fall outside the kit's monitoring perimeter.
  • Why deferred: The standing user constraint as of 2026-05-25 is "I don't want to add anything new. We'll check back in 6 months and see." This item is logged here so it's not lost, but action is paused until the November 2026 six-month review per 10-Calibration/six-month-test. The Friday-themes slot in the long-form rotation is the natural place to extend coverage when the time comes; no new infrastructure required.
  • Evidence: User feedback 2026-05-28 (audit conversation following SNOW failure): "not forward looking enough, nothing about robotics, space exploration, advanced defense tech, quantum computing, perhaps a more forward looking perspective is needed."
  • Priority: P3 (nice-to-have, no time pressure given the 6-month review framework).
  • Status: logged; do not act until November 2026 review.

P1 — Portfolio daily-note benchmark-sourcing discipline (third recurrence)

  • What: The portfolio task's daily-note benchmark-close sourcing has produced three index-close discrepancies in four daily notes since inception. The 2026-05-26 portfolio note disagreed with the PM-26 research note on the S&P close (7,519.12 vs. 7,473.47). The 2026-05-28 portfolio note recorded the May-27 S&P / Dow / Nasdaq closes as if they were May-28 closes — see audit-log entry #003. The pattern is consistent: stale-tile reads of major-index aggregator data, cited as T3 without a second-source cross-check.
  • Proposed change: harden the portfolio task's prompt with a primary-source pre-flight for the four benchmark closes (S&P 500, Dow, Nasdaq, Russell 2000). Concretely: when the portfolio task writes a daily note, the four major-index closes must be cross-checked against (a) the same day's PM research note when available — which already has its own verification discipline — or (b) two T3 sources rather than one. The portfolio note's existing "Data-quality note" section currently covers RPV / RPG estimate uncertainty; it should be extended to S&P / Dow / Nasdaq sourcing discipline.
  • Why: The portfolio daily note is the canonical record of the day's NAV and benchmark comparison. Mis-attributed benchmark closes silently corrupt the alpha computation and the day's tape framing. The error in 2026-05-28 produced a recorded alpha of −0.18 pp vs. SPY for the day; the actual alpha given the true S&P move was approximately −0.56 pp. Over 6 months and 120+ daily notes, an undisciplined sourcing pattern compounds into a structurally wrong performance ledger at the six-month-test checkpoint.
  • Evidence: audit-log entry #003 (2026-05-28 portfolio note three-index misalignment); the persisting flag in Daily/2026-05-28 "Persisting flags" section noting the 2026-05-26 S&P discrepancy; the verification-run counter in _FROZEN-2026-05-28 now reset twice in two counted runs — the second reset was the portfolio benchmark issue, not the AM/PM cohort the original three discipline additions targeted.
  • Priority: P1 — third recurrence of the same pattern in four daily notes is fast enough to warrant prompt-level codification; affects the canonical performance ledger.
  • Execution scope: Tier 2 — modifies the portfolio task's prompt. Cannot be executed autonomously by the optimization run because the optimization run cannot change another scheduled task's prompt.
  • Status: awaiting approval. The portfolio note for 2026-05-28 has been corrected in place with visible [corrected] markers preserving the original wrong claim; the corrective edit is documented under audit-log entry #003. Forward-looking discipline addition still requires user execution of the prompt change.

P1 — AM/PM template codification post-audit (PENDING USER SIGN-OFF)

  • What: Template codified at am-pm-template with three discipline additions (primary-source pre-flight, ~30% price-action cap, plain-English constraint). The template was previously implicit; the SNOW audit (audit-log entry #001) demonstrated the implicit version had three structural failure modes.
  • Status: Template ready for review. The freeze (_FROZEN-2026-05-28) remains in place until user signs off.
  • What user review entails: Read am-pm-template (one file, ~150 lines), confirm the three discipline additions are correctly specified, then either approve as-is or specify edits. Approval lifts the freeze; new AM/PM writing resumes off the codified template.
  • Priority: P1 — bidaily writing is paused until this is resolved.

P1 — Full-week earnings-claim verification against primary 8-Ks (COMPLETED 2026-05-29; follow-up Tier 2/3 items filed below)

  • What: Every earnings claim cited in research notes 2026-05-23 through 2026-05-28 should be verified against the primary 8-K, press release, or transcript. The SNOW audit covered SNOW directly; the remaining tickers in scope are NVDA, PLTR, NOW, MSFT, ASML, ZS, AZO, MU (Tuesday $1T print), SK Hynix (Wednesday $1T print), NTNX, HPQ, DELL, COST, OKTA, MRVL, CRM.
  • Why: The SNOW failure (audit-log entry #001) suggests a sourcing-discipline gap broader than SNOW specifically. The user explicitly requested this sweep: "Audit every single claim about earnings, business, etc." The full sweep is a multi-hour exercise.
  • How: Open each company's 8-K or press release. Compare the four critical dimensions (headline revenue, EPS, guide, AH reaction) against what the house view recorded. Any divergence gets logged as audit-log entry #002+.
  • Priority: P1 — defers only because it's a focused multi-hour session of its own.
  • Status: COMPLETED 2026-05-29 morning via alphasteve-week-earnings-audit-catchup scheduled task. Findings logged in audit-log entry #004 — 2 material discrepancies (SNOW entry-#002-sweep gap; MRVL FY27/FY28 magnitude understatement), 7 minor discrepancies, 1 verification-process near-miss. 4 files edited in place with [corrected 2026-05-29] markers. Multiple downstream Tier 2/3 items filed below.

Tier 2/3 follow-ups from audit-log entry #004

  • T2 — NVDA same-day buyback / dividend propagation re-sweep. Vault citations of NVDA Q1 FY27 (2026-05-20) systematically omit the same-day $80B buyback authorization + 25× dividend hike to $0.25. Propagation surface: _house-view.md lines 51, 148, 156 and multiple Daily Scans / AM-PM notes through the week. Re-source against T1 and add the capital-return announcement to canonical citations where cohort-context warrants. Low time cost once primary source pulled.
  • T2 — NVDA "HBM primary supply bottleneck" CFO Commentary quote re-verification. Vault attribution to written CFO Commentary; quote may actually be from the call transcript or may have been paraphrased from a third-party source. Verify against the actual NVDA Q1 FY27 CFO Commentary on SEC EDGAR or relocate to the transcript citation. If the quote cannot be located, replace verbatim framing with paraphrase.
  • T2 — PLTR TCV bookings $1.2B vs $2.4B re-verification. Vault claims TCV +$1.2B; primary-source search points to $2.4B total TCV. The $1.2B figure may be a cross-ticker contamination from CRM's $1.2B Agentforce ARR. Re-verify against T1 and edit long-form/business/2026-05-25-pltr-beat-and-fade-bifurcation.md in place if confirmed.
  • T2 — NOW "flat organic guide" wording. Vault says "beat with flat organic guide" but NOW raised reported FY26 guide to +22-22.5%. The "organic" framing may be defensible if read as ex-Moveworks organic-growth-rate, but plain-English-constraint discipline rule says the wording should be tightened. Rewrite to either "flat organic-growth-rate guide (ex-Moveworks)" or "+22-22.5% reported FY26 guide; organic growth held flat" depending on which is empirically correct.
  • T3 — DELL AH magnitude framing. Vault says "+18% to +31% in extended hours" for the Thursday print and "+~38% premarket" for Friday on Pentagon news. Actual: AH closed at ~+38-39%, Friday premarket added ~+5% on Pentagon news. Re-source and tighten cause attribution.
  • T3 — ZS cause attribution. Vault attributes Tuesday's -19% AH solely to "FCF margin guide cut on higher capex"; actual move was driven by FCF margin cut + FY27 prelim ARR guide of 16-17% (deceleration from FY26's +24%) + two senior sales leaders departing. Re-source if ZS is referenced again as a cycle-late-selectivity exemplar.
  • T3 — NTNX same-day announcement propagation. Vault citation of NTNX Q3 FY26 omits $750M buyback authorization increase + NetApp strategic alliance + AMD AI partnership extension co-headlines. Update if NTNX referenced in subsequent cohort-extension notes.
  • T3 — SNOW Natoma acquisition co-headline. Same-evening Natoma (MCP-governance) acquisition not mentioned in vault SNOW citations. Tier 3 propagation gap — does not change the SNOW interpretation but should be cited if the SNOW print is referenced as a structural-catalyst exemplar going forward.
  • T2 — discipline addition candidate for AM/PM template. For prints where vault claims include forward-guide magnitudes (FY27/FY28 figures), require quoting exact dollar figures from the press release / 8-K rather than rounded T3-aggregator framing. MRVL is the load-bearing example (vault rounded $11.5B → "approach $11B" and $16.5B → "~$15B"). User decision required on whether this becomes a formal fourth discipline addition to the AM/PM template alongside primary-source pre-flight / price-action cap / plain-English constraint. Update 2026-06-12 (audit-log #016 — second instance; extends the family from magnitude to mechanism): the June-11 PM note resolved StockStory's direction-ambiguous "FY27 capex $70B + $20–25B prepayments" as Oracle component purchases ("up to $95B of cash out the door") when the call transcript specifies ~$70B of net cash outlay with customer prepayments and bring-your-own-hardware arrangements funding the $20–25B difference. The discipline should require the release/transcript not just for guide magnitudes but for guide mechanism — who pays, which direction the cash moves — whenever the T3 phrasing is ambiguous. The wrong reading overstated Oracle's own cash burden ~35% in a note whose argument was the funding question.
  • T2 — discipline addition candidate for corrective sweeps. When applying a [corrected] marker to a multi-citation file, use file-wide grep on the erroneous claim text itself (e.g., the literal string $0.14) rather than a section-scoped pass. The entry-#002 sweep missed _house-view.md line 57 because it operated section-scoped on the same file where it correctly edited line 192. This belongs in am-pm-template corrections discipline alongside the original markers.

P1 — Benchmark-sourcing Discipline Package (STAGED, REVISED 2026-06-07, awaiting user approval)

  • Proposal file: benchmark-sourcing-package
  • What (revised): Architectural fix, not discipline rules. The PM scan becomes the single writer of a canonical closes file (13-Research/Daily-Scans/YYYY-MM-DD-closes.md) as its first action. Portfolio-daily and the next-morning AM scan become readers — they do not pull benchmark closes from the web independently. One source of truth replaces three independent web-pulls. New framework file plus four SKILL.md edits across three tasks (PM scan, portfolio-daily, AM scan).
  • Why this revision: the original proposal was four discipline rules asking the agent to "be more careful" — the same lever as sources-policy.md, which the audit log shows hasn't been enough. The error recurs every other day under honor-system discipline. The fix has to remove the surface where the fault lives, not add another rule against it.
  • Evidence: audit-log entries #003, #005, #006, #007, #008, #009, #010 — all the same fault, all on the surface where multiple tasks pull the same data independently. Seven of the last ten entries.
  • Update 2026-06-09 (entry #011 — sharpens the proposal): the 06-08 Monday cash tape produced the ninth recurrence, and for the first time the fault was on the canonical closes file itself — the single source of truth the benchmark-sourcing-discipline framework already routes everyone to. The closes file overstated all four index gains and put the Dow up (+0.58%) when it closed down (−0.16%), then propagated to four downstream files. The two-source rule did not catch it: the Dow row was marked settled on two reads agreeing at +0.58%, both stale. The lesson for this package: removing the multiple-pull surface is necessary but not sufficient — the closes file needs (a) a hard settled-close anchor (a post-4:30 p.m. ET official exchange close or a genuinely independent second source, not a same-family "post-close" article tile), and (b) the direction sanity check run against the actual prior close level, which would have flagged the inverted Dow sign immediately. Recommend folding both into § of the proposal before approval.
  • Update 2026-06-11 (entries #014 and #015 — two more data points, one for each half of the proposal): entry #014 (June-9 SPY decline overstated ~3x in the closes file; settled 737.05/−0.29%) is the strongest evidence yet for the flag-don't-book rule — the error was fully contained because nothing was booked before settlement; the rule should be named as mandatory in the package. Entry #015 (Cracker Barrel premarket +10.7% promoted to "closed up ~10.7%" vs an actual ~+23% close) extends the intraday-as-close family to name-level moves for the first time: the hard settled-close anchor the package proposes should cover any "closed"-framed name-level percentage the scan asserts, not just the four index rows.
  • Execution scope: Tier 2 (new framework file + four scheduled-task prompt edits). Time to execute when approved: ~7 minutes. Fully reversible in ~3 minutes per §5 of the proposal.
  • Status: STAGED, revised, prepared in full detail. Awaiting user signal. Entry #011 reinforces P1 urgency: this is now nine recurrences, the worst single-run propagation to date, and the first on the closes-file surface; #014/#015 take the family to eleven dated instances.

✓ Closed 2026-06-19 — Spin out a "June 14–19 resolution-window" dossier (NEW 2026-06-14 PM)

  • CLOSED 2026-06-19 — self-resolved/obsolete by the window passing. The item's own closure condition ("the window is short and self-resolving by June 19; if not spun out before the window closes, close this item") is met. Both binaries resolved inside the window and were tracked in the daily notes rather than a dossier: the Fed decided June 17 (hawkish hold, dot plot raised) and the Iran deal was declared complete with the Hormuz blockade lifted June 18 — earlier and more cleanly than the dossier's framing assumed. The joint-distribution value the dossier would have added has expired; the threads now live in the resolved house-view positions (rate path, Iran/Hormuz weights moved to ~40/53/7 on 06-18) and the standing synchronized-tightening dossier 2026-06-12-synchronized-tightening-energy-shock-v1. No new file created; nothing to migrate. Original item preserved below.

(original item, now closed)

  • What: Two binaries and an oil-price hinge now resolve inside one ~5-day window: the Iran/Hormuz signing (Pakistan's June 19 Switzerland ceremony, with the Lebanon flare a live break risk) and the rate path (Fed June 16–17, with the dot plot possibly gone), connected by the Hormuz risk premium in oil — a Lebanon-driven oil reversal would narrow the disinflation tailwind into the FOMC. Propose a short dossier mapping the joint distribution and the cross-asset reads, rather than tracking the two threads separately in each AM/PM note.
  • Why (mission test): the convergence has surfaced across the last four notes (the synchronized-tightening cluster, the Iran-flanks-decoupling theme, the cash-tape look-through theme all point at the same window). A dossier would force one coherent joint read and a pre-registered scorecard for what each outcome implies, instead of re-deriving the linkage daily.
  • Evidence: 2026-06-14-PM (themes-emerging and what-shifted sections), 2026-06-14-AM, 2026-06-12-synchronized-tightening-energy-shock-v1.
  • Priority: P3 — the window is short and self-resolving by June 19; value is in the next five days only. If not spun out before the window closes, close this item.
  • Execution scope: Tier 2 — new dossier file; for the long-form/thesis-builder run, not the daily scan.
  • Status: proposed, awaiting review.

P3 — Clarify Cursor revenue base and implied sales multiple in the 2026-06-16 PM note (NEW 2026-06-17)

  • What: The 2026-06-16 PM research note states Cursor "carries roughly $2.6 billion of annualized revenue" and derives "a deal struck near 23 times sales" on the $60B SpaceX–Anysphere acquisition, citing T3. On primary-source verification this run, broader reporting (Yahoo Finance, TechCrunch, both 2026-06-16) puts Cursor's total annualized revenue near $4 billion, with the $2.6 billion figure the B2B/enterprise slice. On the $4 billion total base the implied multiple is closer to 15 times sales, not ~23 times. Proposed fix: rewrite the revenue characterization to "$2.6B B2B enterprise revenue out of ~$4B total annualized" and present both multiples (15x on total / ~23x on enterprise), with the T3 conflict noted per sources-policy.
  • Why (mission test): the asset-growth / new-issues capital-cycle read the note builds on the SpaceX marker is sharper, not weaker, when the multiple is stated correctly — a paper-funded buyer paying ~15–23x sales is still the textbook influx-phase tell. But an overstated single multiple that rests on a partial revenue base, transcribed from one T3 aggregator without the broader cross-check, is the exact pattern sources-policy and the audit-log discipline exist to catch. The figure feeds the Phase 2 dossier's confirming-data-point log, so the correct number should propagate there, not the partial one.
  • Evidence: 2026-06-16-PM §"Top of mind" and §"Business & corporates" (the "$2.6 billion … 23 times sales" lines); WebSearch this run returned Yahoo Finance and TechCrunch reporting ~$4B total annualized revenue with ~$2.6B enterprise. Deal terms themselves ($60B all-stock, signed June 16, Q3 close) verified clean.
  • Priority: P3 — the deal facts are right, nothing is booked, and the note explicitly frames the marker as "not a position"; the fix is a one-paragraph clarification that changes a stated multiple, so it is analytical (Tier 2), not a groundskeeper edit.
  • Execution scope: Tier 2 — rewriting the revenue/multiple framing in a research note changes its analytical content, and the correction rests on a T3-vs-T3 conflict (no primary source for a private target) rather than a primary-source discrepancy. For the user or the next builder, not the optimization run.
  • Status: awaiting approval. If the user judges the partial-revenue characterization a discrepancy rather than a clarification, the verification counter (now 5) should reset to 0 and this becomes an audit-log entry; the optimization run treated it as a clean run on the enumerated in-scope deal terms and surfaced the nuance for that judgment.

P2 — PM-scan run-time gap: shift the closes pull past settlement, or add a post-settle second pass (NEW 2026-06-12)

  • What: The closes file has been partial three consecutive trading days (June 9, 10, 11) from the same failure: at the 16:40 ET pull, every fetchable read is a cached 11:56–14:49 ET state, so no June-same-day row settles and the settled corrections arrive one day late through the next day's file. Proposed: move the PM scan's closes pull to a later slot (17:15–17:30 ET, after official settlement and tile refresh), or add a short second pass that writes only the settled rows. This is a schedule/prompt change to the PM-scan task, so it is queued rather than executed.
  • Why (mission test): the run-time gap is now a standing feature, not an exception — the portfolio task books a day late by design, and every downstream reader (AM scan, portfolio-daily, watchlist proximity checks) operates on one-day-old settled anchors. The flag-don't-book rule is containing the damage (entries #014/#015 confirm), but containment is not the goal; a settled same-day anchor is, and the staged benchmark-sourcing package's "hard settled-close anchor" is only achievable if the pull happens after settlement.
  • Evidence: 2026-06-09-closes, 2026-06-10-closes, 2026-06-11-closes — all status: partial with the same cache-lag note; the portfolio-daily 2026-06-11 discipline note explicitly requests this Backlog look ("worth a backlog look at whether the PM scan can pull settled OHLC tables ~30 minutes later, rather than widening this task's sourcing").
  • Priority: P2 — the discipline mechanisms are containing the gap, but it recurs daily and the fix is a timing change, not new sourcing.
  • Execution scope: Tier 2 — modifies a scheduled task's run time and/or prompt. Pairs naturally with the staged P1 benchmark-sourcing package; if the package is approved, fold this in.
  • Update 2026-06-13: 2026-06-12-closes is the fourth consecutive partial (June 9–12), same 16:15–16:45 ET cache-lag. The cost was visible on a marquee print this run: the SpaceX marker-six debut could not settle in the closes file and was carried as an unresolved +25–28% intraday band ($169–173, near the $176.52 session high), while the same-day PM research note settled it at +19.3% ($161.11) from a close-specific source. A post-settle pull would have let the canonical closes file — not the research note — carry the settled marquee close, and would have spared the four-session settle drought the portfolio note now calls its biggest data-quality liability. Strengthens the timing-change case.
  • Update 2026-06-15: new variant logged as its own P1 above — the June-15 closes file (2026-06-15-closes) was not-yet-settled because the PM scan fired ~15:40–16:00 ET, before the 4:00 PM cash close, not from cache-lag. The same timing fix (pull past settlement) closes both the cache-lag and the fired-before-close failures. The fired-before-close case is arguably worse: there is no intraday cache to mine even for direction-with-magnitude, only a mid-session read. Folds into this item's scope.
  • Update 2026-06-19 (verification of the 06-18 vault — the gap's cost is now analytical, not just numeric): the 06-18 PM scan and portfolio note both fired ~15:45 ET, before the cash close, and carried Russell 2000 −0.72% as the day's read, concluding "small caps did not join the mega-cap-led move" and listing it under "signals I did not see" as "broad small-cap lag." By the 4:00 PM settle the Russell had reversed to +2.02% (2,977.16; external confirmation +2.12% / 2,979.77) and led the tape — the broadening the 06-18 PM research note correctly read off the settled TheStreet wrap. So the before-close fire did not just leave the four index numbers unsettled; it produced a same-day breadth narrative the settled session contradicts, on two surfaces (PM scan, portfolio note) that feed Monday's read. Contained by the not-yet-settled flag and the AM-scan settled-addendum handoff (Monday June 22 owes it), but this is the first instance where the timing gap corrupted an interpretive thread rather than only a figure. Additional weight for moving the PM scan's pull past 4:00 PM ET settlement; pairs with the four consecutive not-yet-settled P1 items (06-15 through 06-18).
  • Update 2026-06-24 (seventh occurrence): 2026-06-23-closes carried status: not-yet-settled again — the PM scan fired ~15:40 ET before the 4:00 PM cash close, so the June-24 AM scan read June-18-basis carries for every US index row rather than a settled June-23 close. June 15–18, 22, and 23 are the seven occurrences (June 19 was the Juneteenth holiday, moot). The deterministic ingestion layer built 2026-06-23 (P1 above) still awaits user scheduling; until it is wired, the early-cron fire recurs every session. Front-of-queue.
  • Update 2026-06-25 (eighth occurrence): 2026-06-24-closes carried status: not-yet-settled — the PM scan again fired ~15:40 ET before the cash close, so the June-25 AM scan could not read a settled June-24 close from the canonical file. Per benchmark-sourcing-discipline the AM scan used the June-24 settled index levels carried by the 2026-06-25-AM research note (S&P 7,358.22 −0.10%, Nasdaq 25,476.64, Dow 51,848.90, Russell 2,976.98, TheStreet) with the date-basis gap noted, rather than re-pulling closes. June 15–18, 22, 23, and 24 are the eight occurrences (June 19 holiday, moot). Deterministic ingestion layer still awaits user scheduling; early-cron fire recurs every session. Front-of-queue.
  • Status: awaiting approval.

P1 — Closes file not-yet-settled at portfolio-daily run time 2026-06-15 16:02 ET (NEW 2026-06-15)

  • What (discipline-failure log, per portfolio-daily SKILL.md): the canonical closes file 2026-06-15-closes carried status: not-yet-settled when the portfolio-daily task fired at 2026-06-15 16:02 ET. The PM scan that writes the file ran early — at ~15:40–16:00 ET, before the 4:00 PM cash close — so no June-15 row was settle-able and the file logged intraday directional reads only (S&P +1.5%, Nasdaq +2.8%, Dow record, oil −5%+ on the U.S.-Iran-peace-deal relief tape). Per benchmark-sourcing-discipline the portfolio-daily task carried prior-day references throughout (booked SPY = June-10 settled 725.43, cum −3.18% / alpha +3.18 pp; June-11 derived ~$738.1 stays flagged-not-booked; pipeline names carried at June-12/June-14 reads) and did not web-pull as a fallback. Today's portfolio note explicitly records that current-day closes were not available.
  • Why this matters (mission test): the portfolio NAV and benchmark-alpha ledger is the canonical scorecard for the six-month-test; a run-time gap that leaves the day's closes unsettled forces a one-day-late booking and degrades the alpha series at the checkpoint. With the portfolio still 100% cash, NAV is unaffected today (flat by construction) — but the gap is structural and would corrupt the ledger the moment capital is deployed.
  • Relationship to existing items: this is a more acute instance of the standing P2 — PM-scan run-time gap item below (which documented four consecutive cache-lag partial days, June 9–12). Today's file was not cache-lagged — the scan simply fired before the close. Both point to the same fix: move the PM scan's closes pull past 4:00 PM ET settlement (the P2 item proposes ~17:15–17:30 ET). Recommend folding this instance into that item's evidence and/or the staged P1 — Benchmark-sourcing Discipline Package "hard settled-close anchor" provision when either is approved.
  • Priority: P1 — affects the canonical performance ledger; recurs structurally; not autonomously fixable by this task (the fix is a change to the PM scan's run time/prompt).
  • Execution scope: Tier 2 — modifies the PM-scan scheduled task's run time and/or prompt. Cannot be executed autonomously by the portfolio-daily run.
  • Status: logged. No data corrupted today (100% cash, prior-day references carried with explicit gap note per discipline). Awaiting the PM-scan timing change tracked under the P2 item below.

P1 — Closes file not-yet-settled at portfolio-daily run time 2026-06-16 (NEW 2026-06-16) — SECOND CONSECUTIVE

  • What (discipline-failure log, per portfolio-daily SKILL.md): the canonical closes file 2026-06-16-closes carried status: not-yet-settled when the portfolio-daily task fired tonight. Identical failure mode to 2026-06-15, now two trading days in a row: the PM scan that writes the file ran early — at ~15:45–15:55 ET, before the 4:00 PM cash close — so no June-16 row was settle-able and the file logged intraday directional reads only (S&P −0.40%, Nasdaq −0.81%, Dow +0.74% record, WTI ~−4%, Brent −5.23%, on a second-day rotation-out-of-tech tape). Per benchmark-sourcing-discipline the portfolio-daily task carried prior-day references throughout (booked SPY = June-10 settled 725.43, cum −3.18% / alpha +3.18 pp; pipeline names carried at June-16-AM reads) and did not web-pull as a fallback. Today's portfolio note explicitly records that current-day closes were not available.
  • Why this matters (mission test): same as the June-15 instance — the portfolio NAV and benchmark-alpha ledger is the canonical scorecard for the six-month-test; a run-time gap that leaves the day's closes unsettled forces a one-day-late booking and degrades the alpha series. Still 100% cash so NAV is unaffected (flat by construction), but the gap is structural and would corrupt the ledger the moment capital is deployed. The back-to-back recurrence elevates urgency: the fired-before-close failure is not a one-off; it is the PM scan's standing run time.
  • Relationship to existing items: second instance of the P1 — Closes file not-yet-settled (2026-06-15) item above and a more acute variant of the standing P2 — PM-scan run-time gap item (cache-lag June 9–12). All three resolve with the same fix: move the PM scan's closes pull past 4:00 PM ET settlement (~17:15–17:30 ET). Two consecutive fired-before-close days argue the PM scan's cron is set too early, not merely that tiles cache-lag.
  • Priority: P1 — affects the canonical performance ledger; now recurring on consecutive days; not autonomously fixable by this task (the fix is a change to the PM scan's run time/prompt).
  • Execution scope: Tier 2 — modifies the PM-scan scheduled task's run time and/or prompt. Cannot be executed autonomously by the portfolio-daily run.
  • Status: logged. No data corrupted today (100% cash, prior-day references carried with explicit gap note per discipline). Awaiting the PM-scan timing change tracked under the P2 item below — the consecutive recurrence should bump that timing change ahead of the other queued items.
  • AM-scan follow-up (2026-06-17): the 06-17 AM deep-value scan read 2026-06-16-closes and found it still not-yet-settled — the file never received its overnight settled addendum. The AM scan recorded the settled addendum itself in 2026-06-17-AM §Market context: Nasdaq 26,376.34 (−1.15%) and Dow ~52,000 (+0.64% record) dual-confirmed; the S&P 500 read is an unresolved same-tier conflict (TheStreet 7,548.60 / −0.08% vs Benzinga-Bloomberg −0.57%). Two open defects now: (1) the PM scan fires before the cash close, and (2) the owed settled addendum is not being written back to the closes file overnight. Both still point to the same PM-scan run-time fix; the addendum-writeback gap is a second symptom worth naming in the fix.

P1 — Closes file not-yet-settled at portfolio-daily run time 2026-06-17 (NEW 2026-06-17) — THIRD CONSECUTIVE

  • What (discipline-failure log, per portfolio-daily SKILL.md): the canonical closes file 2026-06-17-closes carried status: not-yet-settled when the portfolio-daily task fired tonight. Identical failure mode to 2026-06-15 and 2026-06-16, now three trading days in a row: the PM scan that writes the file ran early — at ~15:40 ET, before the 4:00 PM cash close — so no June-17 row was settle-able and the file logged intraday directional reads only (S&P −1.12% to −1.2%, Nasdaq −1.04% to −1.2%, Dow −0.93% to −1.0%, on a broad hawkish-FOMC de-rate after Warsh's first press conference dropped forward guidance and the dot plot showed nine of 18 officials penciling at least one 2026 hike). Per benchmark-sourcing-discipline the portfolio-daily task carried prior-day references throughout (booked SPY = June-10 settled 725.43, cum −3.18% / alpha +3.18 pp; pipeline names carried at June-17-AM reads) and did not web-pull as a fallback. Today's portfolio note explicitly records that current-day closes were not available.
  • Why this matters (mission test): same as the June-15 and June-16 instances — the portfolio NAV and benchmark-alpha ledger is the canonical scorecard for the six-month-test; a run-time gap that leaves the day's closes unsettled forces a one-day-late booking and degrades the alpha series. Still 100% cash so NAV is unaffected (flat by construction), but the gap is structural and would corrupt the ledger the moment capital is deployed. Three consecutive fired-before-close days confirm this is the PM scan's standing run time, not a one-off — the cron is set too early.
  • Compounding second defect (carried from the 2026-06-16 AM-scan follow-up): the owed settled-close addendum is also not being written back to the closes files overnight — 2026-06-16-closes never received its addendum, and the 06-17 closes file again notes "tomorrow's AM scan owes this file a settled-close addendum." Two open defects now: (1) the PM scan fires before the cash close, and (2) the owed settled addendum is not being written back. Both still point to the same PM-scan run-time fix; the addendum-writeback gap is a second symptom worth naming in the fix.
  • Relationship to existing items: third consecutive instance of the P1 — Closes file not-yet-settled items above (2026-06-15, 2026-06-16) and a more acute variant of the standing P2 — PM-scan run-time gap item (cache-lag June 9–12). All resolve with the same fix: move the PM scan's closes pull past 4:00 PM ET settlement (~17:15–17:30 ET). Three consecutive fired-before-close days are now the strongest evidence to date that the PM scan's cron is set too early; per the 06-16 note the recurrence should bump the PM-scan timing fix to the top of the queue.
  • Priority: P1 — affects the canonical performance ledger; now recurring on three consecutive days; not autonomously fixable by this task (the fix is a change to the PM scan's run time/prompt).
  • Execution scope: Tier 2 — modifies the PM-scan scheduled task's run time and/or prompt. Cannot be executed autonomously by the portfolio-daily run.
  • Status: logged. No data corrupted today (100% cash, prior-day references carried with explicit gap note per discipline). Awaiting the PM-scan timing change tracked under the P2 item below — the three-consecutive recurrence should jump that timing change to the front of the queue.

P1 — Closes file not-yet-settled at portfolio-daily run time 2026-06-18 (NEW 2026-06-18) — FOURTH CONSECUTIVE

  • What (discipline-failure log, per portfolio-daily SKILL.md): the canonical closes file 2026-06-18-closes carried status: not-yet-settled when the portfolio-daily task fired tonight. Identical failure mode to 2026-06-15, 2026-06-16, and 2026-06-17, now four trading days in a row: the PM scan that writes the file ran early — at ~15:45 ET, before the 4:00 PM cash close — so no June-18 row was settle-able and the file logged intraday directional reads only (S&P +1.0% to +1.15%, Nasdaq +1.5%, Dow +0.7% to +0.8%, Russell −0.72%, WTI −3%, gold −1.25%, on a broad risk-on bounce — the clean mirror of June-17's hawkish-FOMC de-rate, on the signed interim U.S.-Iran peace deal set to sign Friday June 19 in Geneva). Per benchmark-sourcing-discipline the portfolio-daily task carried prior-day references throughout (booked SPY = June-10 settled 725.43, cum −3.18% / alpha +3.18 pp; pipeline names carried at June-18 intraday reads) and did not web-pull as a fallback. Today's portfolio note explicitly records that current-day closes were not available.
  • Why this matters (mission test): same as the June-15/16/17 instances — the portfolio NAV and benchmark-alpha ledger is the canonical scorecard for the six-month-test; a run-time gap that leaves the day's closes unsettled forces a one-day-late booking and degrades the alpha series. Still 100% cash so NAV is unaffected (flat by construction), but the gap is structural and would corrupt the ledger the moment capital is deployed. Four consecutive fired-before-close days confirm beyond doubt this is the PM scan's standing run time, not a one-off — the cron is set too early.
  • Compounding second defect (carried from the 2026-06-16 / 2026-06-17 follow-ups): the owed settled-close addendum write-back is now partly working — 2026-06-18-closes notes the June-17 settled basis (S&P 7,420.10, Dow 51,492.55, Nasdaq 26,021.66) was recorded by the 2026-06-18-AM scan, so the AM-scan addendum path functioned for June-17. But the closes-file row itself is still written not-yet-settled at PM-scan time, and the June-18 settled addendum is owed to Monday June 22's AM scan (Friday June 19 is the Juneteenth market holiday). Two open defects remain: (1) the PM scan fires before the cash close, and (2) the closes file is not self-settling — it depends on a next-session addendum write-back.
  • Relationship to existing items: fourth consecutive instance of the P1 — Closes file not-yet-settled items above (2026-06-15, 2026-06-16, 2026-06-17) and a more acute variant of the standing P2 — PM-scan run-time gap item (cache-lag June 9–12). All resolve with the same fix: move the PM scan's closes pull past 4:00 PM ET settlement (~17:15–17:30 ET). Four consecutive fired-before-close days are now the strongest evidence to date that the PM scan's cron is set too early; the closes file itself flags this run as the fourth and recommends the PM-scan trigger-time change jump to the front of the queue.
  • Priority: P1 — affects the canonical performance ledger; now recurring on four consecutive days; not autonomously fixable by this task (the fix is a change to the PM scan's run time/prompt).
  • Execution scope: Tier 2 — modifies the PM-scan scheduled task's run time and/or prompt. Cannot be executed autonomously by the portfolio-daily run.
  • Status: logged. No data corrupted today (100% cash, prior-day references carried with explicit gap note per discipline). Awaiting the PM-scan timing change tracked under the P2 item below — the four-consecutive recurrence should jump that timing change to the front of the queue. Next settled session is Monday June 22 (Juneteenth holiday Friday June 19); the June-18 settled addendum is owed then.

P1 — Closes file not-yet-settled at portfolio-daily run time 2026-06-22 (NEW 2026-06-22) — FIFTH OCCURRENCE (first normal session after the Juneteenth holiday)

  • What (discipline-failure log, per portfolio-daily SKILL.md): the canonical closes file 2026-06-22-closes carried status: not-yet-settled when the portfolio-daily task fired tonight. Identical failure mode to 2026-06-15, 2026-06-16, 2026-06-17, and 2026-06-18 — the PM scan that writes the file fired ~15:45 ET, before the 4:00 PM cash close, so no June-22 US equity, US Treasury cash, VIX, SPY, or single-name row was settle-able. This is the fifth occurrence of the early-cron timing failure (the prior four were June 15–18; June 19 was the Juneteenth market holiday, where the early fire was moot because there was no close to miss). Today is the first normal session since, and the cron is still firing ~45 minutes ahead of the 4:30 PM settle target. The file logged intraday directional reads only (S&P ~−0.35% midday on the Nasdaq-100 reshuffle and a space/biotech selloff; commodities/FX traded normally — WTI ~$74.3 down ~3.5% on US-Iran de-escalation, Brent ~$81 open, gold ~$4,165, DXY ~100.63 near a one-year high) and explicitly excluded a contaminated pre-settle search read (Russell 2000 +2.12%, identical to the stale June-18 figure). Per benchmark-sourcing-discipline the portfolio-daily task carried prior-day references throughout (booked SPY = June-10 settled 725.43, cum −3.18% / alpha +3.18 pp; pipeline names carried at June-18 settled/carried reads) and did not web-pull as a fallback. Today's portfolio note explicitly records that current-day closes were not available.
  • Why this matters (mission test): same as the June-15/16/17/18 instances — the portfolio NAV and benchmark-alpha ledger is the canonical scorecard for the six-month-test; a run-time gap that leaves the day's closes unsettled forces a one-day-late booking and degrades the alpha series. Still 100% cash so NAV is unaffected today (flat by construction), but the gap is structural and would corrupt the ledger the moment capital is deployed. Five occurrences across every normal session since June 15 confirm beyond doubt this is the PM scan's standing run time — the cron is set too early.
  • Compounding second defect (carried from the 2026-06-16/17/18 follow-ups): the closes file is not self-settling — it depends on a next-session AM-scan addendum write-back. The June-18 settled index addendum was written back into 2026-06-19-closes / 2026-06-19-AM (S&P 7,500.58, Nasdaq 26,517.93, Dow 51,564.70, Russell 2,979.77, VIX 16.40) — so the addendum path is functioning at the index level — but the SPY ETF has still had no settle since June-10, so the booked SPY reference remains the June-10 725.43 rebase. The June-22 settled close (and the still-owed June-18 SPY-ETF settle) are owed to the next run that can retrieve them cleanly.
  • Relationship to existing items: fifth instance of the P1 — Closes file not-yet-settled family (2026-06-15, 16, 17, 18) and a more acute variant of the standing P2 — PM-scan run-time gap item (cache-lag June 9–12). All resolve with the same fix: move the PM scan's closes pull past 4:00 PM ET settlement (~17:15–17:30 ET). Five occurrences are now the strongest evidence to date that the PM scan's cron is set too early; the closes file itself flags the PM-scan trigger-time change as the front-of-queue P1 item.
  • Priority: P1 — affects the canonical performance ledger; recurs on every normal session since June 15; not autonomously fixable by this task (the fix is a change to the PM scan's run time/prompt).
  • Execution scope: Tier 2 — modifies the PM-scan scheduled task's run time and/or prompt. Cannot be executed autonomously by the portfolio-daily run.
  • Status: logged. No data corrupted today (100% cash, prior-day references carried with explicit gap note per discipline). Awaiting the PM-scan timing change tracked under the P2 item below — the five-occurrence recurrence keeps that timing change at the front of the queue.

P1 — Closes file not-yet-settled at portfolio-daily run time 2026-06-23 (NEW 2026-06-23) — SIXTH OCCURRENCE

  • What (discipline-failure log, per portfolio-daily SKILL.md): the canonical closes file 2026-06-23-closes carried status: not-yet-settled when the portfolio-daily task fired tonight. Identical failure mode to 2026-06-15, 2026-06-16, 2026-06-17, 2026-06-18, and 2026-06-22 — the PM scan that writes the file fired ~15:40 ET, before the 4:00 PM cash close, so no June-23 US equity, US Treasury cash, VIX, SPY, or single-name row was settle-able. This is the sixth occurrence of the early-cron timing failure (the prior five were June 15–18 and June 22; June 19 was the Juneteenth holiday, where the early fire was moot). The cron is still firing ~50 minutes ahead of the 4:30 PM settle target. The file logged intraday directional reads only (a global memory-led semiconductor rout: S&P down ~1.3–1.5% intraday, Nasdaq off ~2.3%, MU ~−9 to −10% into its print tomorrow AMC; Dow held better on defensive rotation; VIX back toward ~19–20; commodities/FX traded normally — WTI ~$73.4 down ~1.2% to a three-month low, Brent ~$77.2, gold ~$4,129–4,138 down ~1.5%, DXY ~100.3 near a one-year high, 10Y intraday ~4.48–4.50%). Per benchmark-sourcing-discipline the portfolio-daily task carried prior-day references throughout (booked SPY = June-10 settled 725.43, cum −3.18% / alpha +3.18 pp; pipeline names carried at June-18 settled/carried reads) and did not web-pull as a fallback. Today's portfolio note explicitly records that current-day closes were not available.
  • Why this matters (mission test): same as the June-15 through June-22 instances — the portfolio NAV and benchmark-alpha ledger is the canonical scorecard for the six-month-test; a run-time gap that leaves the day's closes unsettled forces a one-day-late booking and degrades the alpha series. Still 100% cash so NAV is unaffected today (flat by construction), but the gap is structural and would corrupt the ledger the moment capital is deployed. Six occurrences across every normal session since June 15 confirm beyond doubt this is the PM scan's standing run time — the cron is set too early. Today is the most acute illustration to date of the cost: a memory-led rout (S&P ~−1.3 to −1.5%) is exactly the kit-favorable down session the deep-value cash posture exists to capture, and it is the session that cannot be booked because the closes file fired early.
  • The fix is now built, awaiting only user action (carried from the 2026-06-23 P1 ingestion-layer item at the top of this file): the deterministic host-run market-data puller (_Tools/marketdata/market_close.py) was built and offline-validated 2026-06-23; its settlement gate refuses a same-day close on a pre-16:15-ET fire (the exact early-fire bug). Two user-action items close this stack: (1) schedule the host puller ~18:15 ET weekdays; (2) fix the PM-scan / portfolio-daily cron timezone offset so both run past settlement. Until those land, this discipline-failure will recur on every normal session.
  • Relationship to existing items: sixth instance of the P1 — Closes file not-yet-settled family (2026-06-15, 16, 17, 18, 22) and a more acute variant of the standing P2 — PM-scan run-time gap item. All resolve with the same fix above. The PM-scan trigger-time change remains the front-of-queue P1 item.
  • Priority: P1 — affects the canonical performance ledger; recurs on every normal session since June 15; not autonomously fixable by this task (the fix is a change to the PM scan's run time/prompt plus host-puller scheduling, both Tier-2 user actions).
  • Execution scope: Tier 2 — modifies the PM-scan scheduled task's run time and/or prompt and schedules the host puller. Cannot be executed autonomously by the portfolio-daily run.
  • Status: logged. No data corrupted today (100% cash, prior-day references carried with explicit gap note per discipline). Awaiting the PM-scan timing change and host-puller scheduling — the six-occurrence recurrence keeps both at the front of the queue. The next true settled US session close is tonight's June-23 close, owed as a settled addendum on the next run that can retrieve it cleanly.

P1 — Closes file not-yet-settled at portfolio-daily run time 2026-06-25 (NEW 2026-06-25) — SEVENTH portfolio-daily occurrence; plus a NEW missed-run defect (June-24 portfolio-daily never fired)

  • What (discipline-failure log, per portfolio-daily SKILL.md): the canonical closes file 2026-06-25-closes carried status: not-yet-settled when the portfolio-daily task fired tonight. Identical failure mode to 2026-06-15 through 2026-06-23 — the PM scan that writes the file fired ~15:38 ET, before the 4:00 PM cash close, so no June-25 US equity, US Treasury cash, VIX, SPY, or single-name row was settle-able. The closes file logs this as the ninth occurrence of the early-cron timing failure overall (prior eight closes-files: June 15, 16, 17, 18, 22, 23, 24; June 19 was the Juneteenth holiday, moot). For the portfolio-daily discipline-failure stack specifically this is the seventh occurrence (June 15, 16, 17, 18, 22, 23 were the prior six; June 24's portfolio-daily run is absent — see the missed-run defect below, so no June-24 portfolio-daily entry exists). The file logged June-25 direction qualitatively only (rotation: Dow set a fresh record intraday, S&P firmed ~+0.5%, Nasdaq lagged on Apple ~−5% on iPad/MacBook price hikes tied to memory costs; hot in-line May PCE — core 3.4% y/y, headline 4.1% y/y, ~65–70% odds priced for a September Fed hike). Per benchmark-sourcing-discipline the portfolio-daily task carried prior-day references throughout (booked SPY = June-10 settled 725.43, cum −3.18% / alpha +3.18 pp; the June-24 settled index basis is now recorded but the SPY ETF still has no settle since June-10; pipeline names carried at June-24 settled / June-25 intraday reads) and did not web-pull as a fallback. Today's portfolio note explicitly records that current-day closes were not available.
  • NEW defect — June-24 portfolio-daily run is missing entirely (a missed run, not just an early-settled closes file): there is no 12-Portfolio/Daily-Notes/2026-06-24.md, no June-24 row in the Performance daily ledger, and no June-24 portfolio-daily P1 entry in this file — even though the June-24 scan cohort (AM/PM/closes/intraday/thesis-builder files) all exist. The portfolio-daily task did not execute (or did not complete its writes) on 2026-06-24. This is distinct from the early-cron closes problem: the closes-not-settled stack is about data quality on a run that happened; this is a run that did not happen at all. Today's portfolio-daily run backfills the missing June-24 ledger and drawdown rows (trivial: 100% cash, NAV $10,000, absolute DD 0.0%, booked SPY alpha +3.18 pp carried — no NAV consequence) and flags the gap here. Recommend the user/optimization run check the portfolio-daily scheduled-task execution log for 2026-06-24 to determine whether the task failed to fire, errored mid-run, or fired but failed to write. If capital had been deployed, a silently skipped portfolio-daily run would have left the canonical NAV/alpha ledger with a one-day hole — a more serious failure than the early-cron timing gap, because nothing flags a run that never happened.
  • Why this matters (mission test): same as the June-15 through June-23 instances — the portfolio NAV and benchmark-alpha ledger is the canonical scorecard for the six-month-test; a run-time gap that leaves the day's closes unsettled forces a one-day-late booking and degrades the alpha series, and a missed run leaves a hole. Still 100% cash so NAV is unaffected (flat by construction) and the June-24 backfill is exact, but both defects are structural and would corrupt the ledger the moment capital is deployed.
  • The fix is built, awaiting only user action (carried from the 2026-06-23 ingestion-layer P1 at the top of this file): the deterministic host-run market-data puller (_Tools/marketdata/market_close.py) was built and offline-validated 2026-06-23; its settlement gate refuses a same-day close on a pre-16:15-ET fire. Two user-action items close the early-cron half of this stack: (1) schedule the host puller ~18:15 ET weekdays; (2) fix the PM-scan / portfolio-daily cron timezone offset so both run past settlement. The missed-run defect is a separate reliability concern (task execution, not data) and warrants a scheduled-task health check.
  • Relationship to existing items: seventh portfolio-daily instance of the P1 — Closes file not-yet-settled family (2026-06-15, 16, 17, 18, 22, 23) and a more acute variant of the standing P2 — PM-scan run-time gap item. The early-cron half resolves with the same fix above; the PM-scan trigger-time change remains the front-of-queue P1 item. The missed-run half is new and points at scheduled-task execution reliability rather than data sourcing.
  • Priority: P1 — affects the canonical performance ledger; the early-cron failure recurs on every normal session since June 15, and the June-24 missed run is a fresh, higher-consequence reliability gap; not autonomously fixable by this task.
  • Execution scope: Tier 2 — modifies the PM-scan scheduled task's run time and/or prompt, schedules the host puller, and requires a scheduled-task execution-log check for the June-24 missed run. Cannot be executed autonomously by the portfolio-daily run.
  • Status: logged. No data corrupted today (100% cash, prior-day references carried with explicit gap note per discipline; June-24 backfilled exactly). Awaiting the PM-scan timing change + host-puller scheduling, and a scheduled-task health check for the June-24 missed run. The next true settled US session close is tonight's June-25 close, owed as a settled addendum on the next run that can retrieve it cleanly.

P1 — Closes file not-yet-settled for prior trading day 2026-06-25, read by AM scan 2026-06-26 (NEW 2026-06-26) — TENTH closes-file occurrence

  • What (discipline-failure log, per daily-scan SKILL.md / benchmark-sourcing-discipline): the 2026-06-26 AM deep-value scan found the canonical prior-day closes file 2026-06-25-closes carrying status: not-yet-settled (it fired ~15:38 ET, before the 4:00 PM cash close, and carries the June-24 settled basis). Identical early-cron failure mode to June 15–25. This is the tenth closes-file occurrence overall. Per discipline the AM scan does not independently web-pull prior-day closes; it used the June-24 settled basis the file carries, and separately recorded the now-public June-25 settled levels (S&P 500 7,357.49 −0.01%, Nasdaq 25,358.60 −0.46%, Dow 51,920.62 +0.14%) as the settled addendum the closes file itself flagged as "owed on the next run that can retrieve it cleanly." No data corrupted (100% cash; references carried with explicit gap note).
  • Why this matters (mission test): same as the June-15 onward stack — the closes file is the single source of truth for prior-day benchmark marks; a file that never settles forces every reader (PM scan, portfolio-daily, next AM scan) to carry stale references and degrades the alpha series the moment capital is deployed.
  • The fix is built, awaiting only user action: the deterministic host puller (_Tools/marketdata/market_close.py, validated 2026-06-23) plus the PM-scan / portfolio-daily cron timezone fix close this stack. The PM-scan trigger-time change remains the front-of-queue P1 item.
  • Priority: P1 — recurs on every normal session since June 15; not autonomously fixable by this task.
  • Execution scope: Tier 2 — modifies the PM-scan scheduled task's run time and schedules the host puller. Cannot be executed autonomously by the AM-scan run.
  • Status: logged. No data corrupted today; June-25 settled addendum recorded in 2026-06-26-AM. Awaiting the PM-scan timing change + host-puller scheduling.

P1 — Closes file not-yet-settled at portfolio-daily run time 2026-06-26 (NEW 2026-06-26) — EIGHTH portfolio-daily occurrence / TENTH closes-file occurrence

  • What (discipline-failure log, per portfolio-daily SKILL.md): the canonical closes file 2026-06-26-closes carried status: not-yet-settled when the portfolio-daily task fired tonight. Identical early-cron failure mode to June 15–25 — the PM scan that writes the file fired ~15:39 ET, before the 4:00 PM cash close, so no June-26 US equity, US Treasury cash, VIX, SPY, or single-name row was settle-able. This is the tenth closes-file occurrence overall (June 15, 16, 17, 18, 22, 23, 24, 25 the prior closes-files; June 19 was the Juneteenth holiday, moot) and the eighth portfolio-daily discipline-failure occurrence (June 15, 16, 17, 18, 22, 23, 25 the prior seven; June 24's portfolio-daily run was the missed run, backfilled June-25, so no June-24 portfolio-daily entry exists). The file logged June-26 direction qualitatively only (broad selloff on AI-datacenter cost worries + a reported OpenAI IPO delay: S&P ~−0.19% / 7,343.73, Nasdaq ~−0.34% / 25,271.31, Dow ~−0.17% / 51,831.37 near 15:39 ET; the S&P tracking a >1% weekly loss, the Nasdaq a ~4% weekly loss; today is also the Russell reconstitution effective date, a closing-auction structural event after this run's fire). Per benchmark-sourcing-discipline the portfolio-daily task carried the June-25 settled basis throughout (booked SPY = June-10 settled 725.43, cum −3.18% / alpha +3.18 pp; pipeline names carried at June-26 intraday reads) and did not web-pull as a fallback. Today's portfolio note explicitly records that current-day closes were not available.
  • What this run does clear: June-25 is now a completed, settled session, so the addendum the 2026-06-25-closes file flagged as owed is recorded — S&P 500 7,357.49 (−0.01%), Nasdaq 25,358.60 (−0.46%), Dow 51,920.62 (+0.14%, fresh record), each dual-confirmed (TheStreet + CNBC) T3. The AM scan 2026-06-26-AM logged the tenth closes-file occurrence and recorded this addendum; this entry is the portfolio-daily half of the same fault.
  • Why this matters (mission test): same as the June-15 onward stack — the portfolio NAV and benchmark-alpha ledger is the canonical scorecard for the six-month-test; a run-time gap that leaves the day's closes unsettled forces a one-day-late booking and degrades the alpha series. Still 100% cash so NAV is unaffected today (flat by construction), but the gap is structural and would corrupt the ledger the moment capital is deployed.
  • The fix is built, awaiting only user action (carried from the 2026-06-23 ingestion-layer P1 at the top of this file): the deterministic host-run market-data puller (_Tools/marketdata/market_close.py, validated 2026-06-23) plus the PM-scan / portfolio-daily cron timezone fix close this stack. Two user-action items: (1) schedule the host puller ~18:15 ET weekdays; (2) fix the PM-scan / portfolio-daily cron timezone offset so both run past settlement. The PM-scan trigger-time change remains the front-of-queue P1 item.
  • Relationship to existing items: eighth portfolio-daily instance of the P1 — Closes file not-yet-settled family and a more acute variant of the standing P2 — PM-scan run-time gap item. Resolves with the same fix above.
  • Priority: P1 — affects the canonical performance ledger; recurs on every normal session since June 15; not autonomously fixable by this task.
  • Execution scope: Tier 2 — modifies the PM-scan scheduled task's run time and/or prompt and schedules the host puller. Cannot be executed autonomously by the portfolio-daily run.
  • Status: logged. No data corrupted today (100% cash, June-25 settled basis carried with explicit gap note per discipline). Awaiting the PM-scan timing change + host-puller scheduling. The next true settled US session close is tonight's June-26 close (plus the Russell-reconstitution auction dislocation), owed as a settled addendum on the next run that can retrieve it cleanly.

P2 — Entity-confirmation step before recording an earnings print to a watchlist/thesis name (NEW 2026-06-10, audit-log #012)

  • What: Add a confirmation step to the scan/calibration workflow: before recording that a watchlist or thesis name "reported," confirm the cited filing's issuer matches the ticker — i.e., the 8-K's CIK and company name correspond to the ticker being updated — and that the print fits the issuer's known fiscal calendar. Only then propagate to the name's calibration tracker.
  • Why (mission test): a peer's earnings recorded under a watchlist name corrupts that name's calibration tracker — the canonical record of whether the thesis is playing out — and can trigger spurious "active-idea refresh" checkpoints or, worse, a trigger/kill-criterion read on data that isn't the company's. This directly degrades the ability to evaluate and act on the mispricing the thesis is built around.
  • Evidence: audit-log entry #012 — on 2026-06-09 a Campbell Soup (CPB) Q3 print (June 8: net sales −4%/$2.4B, adj EPS $0.50/−32%) was recorded as a Conagra (CAG) print in the 06-09 AM scan and propagated into the CAG-calibration 2026-06-09 checkpoint. The cited "Conagra 8-K" CIK 0000016732 is Campbell's; Conagra (CIK 0000023217) did not report June 8 (its Q3 was 2026-04-01). Two signals were already present and ignored: the corroborating Benzinga cite read "Campbell's," and the print date was off Conagra's fiscal calendar (the CAG tracker itself penciled the next print for mid-July). This is a new failure mode — cohort-peer entity conflation — that the benchmark-sourcing package does not address.
  • Priority: P2 — first occurrence, but high-consequence (it reached a calibration tracker) and cheap to prevent. A ticker↔CIK↔name + calendar-plausibility check is a one-line write-time box.
  • Execution scope: Tier 2 — modifies the scan and/or calibration-append workflow prompts; the optimization run cannot change another task's prompt autonomously.
  • Status: awaiting approval. The two affected files have been corrected in place with [corrected 2026-06-10 — see audit-log #012] markers preserving the original misattributed text; the forward-looking prompt addition requires user execution.

✓ Closed 2026-06-10 — Recompute MP Materials EPV from corrected consolidated adjusted EBITDA (audit-log #013) [COMPLETED 2026-06-10]

  • COMPLETED 2026-06-10 by the alphasteve-thesis-builder autonomous run (no thesis builds were queued, so the run executed this item, which audit #013 had routed to the thesis-builder). Recomputed EPV: $5.50–7 per share, central ~$6 (annualized consolidated adjusted EBITDA ~$146M; honest D&A $90–110M; 21% tax; 8–10% WACC; ~$0.7B net cash; 178.0M diluted shares per MP-fundamentals). The three disagreeing floors (thesis $8–12, shadow-matrix Klarman $11, builder note $7.50) all descended from the overstated $185M input and are replaced by the single recomputed band. Edits: MP-thesis §1/§5 refreshed in place with prior state snapshotted to 2026-06-10-epv-recompute; MP-shadow-matrix Klarman row recomputed (spread now $6–85, ~14x); MP-calibration checkpoint appended; MP landing updated. Central value, trigger, and verdict unchanged — the trigger rests on the asset anchor.
  • Follow-up opened (P2, below): the ~$0.7B net-cash EPV input cannot be confirmed by the EDGAR pipeline (no short-term-investments concept in the map; cash-only read shows net debt of $114.2M at 2026-03-31). Original item preserved below.

P2 — Extend EDGAR concept map with short-term-investments tags; verify MP net cash at figure level (NEW 2026-06-10, opened by the EPV recompute)

  • What: Add short-term-investments tags (e.g. ShortTermInvestments plus fallbacks) to _Tools/edgar/concept-map.json, regenerate MP-fundamentals, and verify the MP thesis's ~$0.7B net-cash figure at figure level. Per the current pipeline output, cash was $886.3M against total debt of $1.00B at 2026-03-31 — net debt of $114.2M on a cash-only read — and investments held outside cash are invisible to the concept map ("no data found"). The ~$0.7B stands on the Q1 2026 8-K meanwhile, flagged in MP-thesis §5 and 2026-06-10-epv-recompute.
  • Why (mission test): net cash is a load-bearing EPV input and appears in the MP kill criteria ("net cash turns negative"); a figure the pipeline cannot cross-check is exactly the audit #013 exposure class. Sensitivity is documented: each $100M that fails to verify removes ~$0.55 from the EPV band; no outcome moves the floor toward $58 or the asset-anchored trigger.
  • Execution scope: Tier 1–2 — concept-map edit plus pipeline re-run (web fetch of the new concept URLs required); cheap once run.
  • Update 2026-06-11 (thesis-builder run, partial execution): the concept-map half is done — short_term_investments in _Tools/edgar/concept-map.json now carries five fallback tags (MarketableSecuritiesCurrent, DebtSecuritiesAvailableForSaleCurrent, AvailableForSaleSecuritiesDebtSecuritiesCurrent, HeldToMaturitySecuritiesCurrent, OtherShortTermInvestments) after the bare ShortTermInvestments that returned no data for MP. The fetch half is blocked this run: the environment's web-fetch tool refused both EDGAR endpoints (data.sec.gov companyconcept and www.sec.gov browse-edgar) with a provenance restriction, and per data-integrity-gate no alternative retrieval path is permitted. No figures were touched; MP-fundamentals is unchanged and the ~$0.7B net-cash figure remains flagged-unverified in MP-thesis §5. Next run with working EDGAR fetch: pull the new concept URLs for CIK 0001801368, re-run the normalizer, and verify net cash at figure level.
  • Update 2026-06-12 (thesis-builder run, second blocked attempt): the fetch half was re-attempted and refused with the identical provenance restriction on both EDGAR surfaces (data.sec.gov companyconcept for CIK 0001801368 and www.sec.gov browse-edgar atom). No alternative retrieval attempted per data-integrity-gate; no figures touched. Two consecutive runs now show the run environment cannot reach EDGAR — this is an environment-level fetch-permission issue, not a pipeline fault (the pipeline ran end-to-end on MP and CAG 2026-06-10). User unblocking options logged in 2026-06-12-thesis-builder: paste the EDGAR URLs into a chat message before a manual run, or adjust the environment's fetch permissions for sec.gov. Note the forward exposure: the next fresh-ticker thesis build will sit at data_integrity_gate: pending with verdict withheld if the restriction persists.
  • Update 2026-06-15 (thesis-builder run, third blocked attempt): queue empty again; the fetch half was re-attempted and refused with the identical provenance restriction on the data.sec.gov companyconcept endpoint for CIK 0001801368 (MarketableSecuritiesCurrent). No alternative retrieval attempted per data-integrity-gate; no figures touched. Three consecutive runs (06-11, 06-12, 06-15) now confirm the run environment cannot reach EDGAR — an environment-level fetch-provenance issue, not a pipeline fault. The four MP verification URLs are listed in 2026-06-15-thesis-builder for the paste-into-chat unblocking path. Forward exposure restated: the next fresh-ticker build will sit at data_integrity_gate: pending with verdict withheld until EDGAR fetch works.
  • Update 2026-06-16 (thesis-builder run, fourth blocked attempt): queue empty again; the fetch half was re-attempted and refused with the identical provenance restriction on the data.sec.gov companyconcept endpoint for CIK 0001801368 (MarketableSecuritiesCurrent) — "URL not in provenance set." No alternative retrieval attempted per data-integrity-gate; no figures touched. Four consecutive runs (06-11, 06-12, 06-15, 06-16) now confirm the run environment cannot reach EDGAR — an environment-level fetch-provenance issue, not a pipeline fault. The four MP verification URLs remain listed in 2026-06-15-thesis-builder and 2026-06-16-thesis-builder for the paste-into-chat unblocking path. Forward exposure restated and now overdue for a user decision: the next fresh-ticker build will sit at data_integrity_gate: pending with verdict withheld until EDGAR fetch works.
  • Update 2026-06-17 (thesis-builder run, fifth blocked attempt): queue empty again; the fetch half was re-attempted and refused with the identical provenance restriction on the data.sec.gov companyconcept endpoint for CIK 0001801368 (MarketableSecuritiesCurrent) — "URL not in provenance set." No alternative retrieval attempted per data-integrity-gate; no figures touched. Five consecutive runs (06-11, 06-12, 06-15, 06-16, 06-17) now confirm the run environment cannot reach EDGAR — an environment-level fetch-provenance issue, not a pipeline fault. The four MP verification URLs remain listed in 2026-06-17-thesis-builder for the paste-into-chat unblocking path. Forward exposure restated and now five runs overdue for a user decision: the next fresh-ticker build will sit at data_integrity_gate: pending with verdict withheld until EDGAR fetch works.
  • Update 2026-06-18 (thesis-builder run, sixth blocked attempt): queue empty again; the fetch half was re-attempted and refused with the identical provenance restriction on the data.sec.gov companyconcept endpoint for CIK 0001801368 (MarketableSecuritiesCurrent) — "URL not in provenance set." No alternative retrieval attempted per data-integrity-gate; no figures touched. Six consecutive runs (06-11, 06-12, 06-15, 06-16, 06-17, 06-18) now confirm the run environment cannot reach EDGAR — an environment-level fetch-provenance issue, not a pipeline fault. The four MP verification URLs remain listed in 2026-06-18-thesis-builder for the paste-into-chat unblocking path. Forward exposure restated and now six runs overdue for a user decision: the next fresh-ticker build will sit at data_integrity_gate: pending with verdict withheld until EDGAR fetch works.
  • Update 2026-06-19 (thesis-builder run, seventh blocked attempt): queue empty again (Juneteenth holiday; builder runs daily regardless); the fetch half was re-attempted and refused with the identical provenance restriction on the data.sec.gov companyconcept endpoint for CIK 0001801368 (MarketableSecuritiesCurrent) — "URL not in provenance set." No alternative retrieval attempted per data-integrity-gate; no figures touched. Seven consecutive runs (06-11, 06-12, 06-15, 06-16, 06-17, 06-18, 06-19) now confirm the run environment cannot reach EDGAR — an environment-level fetch-provenance issue, not a pipeline fault. The four MP verification URLs remain listed in 2026-06-19-thesis-builder for the paste-into-chat unblocking path. Forward exposure restated and now seven runs overdue for a user decision: the next fresh-ticker build will sit at data_integrity_gate: pending with verdict withheld until EDGAR fetch works.
  • Update 2026-06-22 (thesis-builder run, eighth blocked attempt): queue empty again (first normal session after the Juneteenth holiday); the fetch half was re-attempted and refused with the identical provenance restriction on the data.sec.gov companyconcept endpoint for CIK 0001801368 (MarketableSecuritiesCurrent) — "URL not in provenance set." No alternative retrieval attempted per data-integrity-gate; no figures touched. Eight consecutive runs (06-11, 06-12, 06-15, 06-16, 06-17, 06-18, 06-19, 06-22) now confirm the run environment cannot reach EDGAR — an environment-level fetch-provenance issue, not a pipeline fault. The four MP verification URLs remain listed in 2026-06-22-thesis-builder for the paste-into-chat unblocking path. Forward exposure restated and now eight runs overdue for a user decision: the next fresh-ticker build will sit at data_integrity_gate: pending with verdict withheld until EDGAR fetch works.
  • Update 2026-06-23 (thesis-builder run, ninth blocked attempt): queue empty again; the fetch half was re-attempted and refused with the identical provenance restriction on the data.sec.gov companyconcept endpoint for CIK 0001801368 (MarketableSecuritiesCurrent) — "URL not in provenance set." No alternative retrieval attempted per data-integrity-gate; no figures touched. Nine consecutive runs (06-11, 06-12, 06-15, 06-16, 06-17, 06-18, 06-19, 06-22, 06-23) now confirm the run environment cannot reach EDGAR — an environment-level fetch-provenance issue, not a pipeline fault. The four MP verification URLs remain listed in 2026-06-23-thesis-builder for the paste-into-chat unblocking path. Forward exposure restated and now nine runs overdue for a user decision: the next fresh-ticker build will sit at data_integrity_gate: pending with verdict withheld until EDGAR fetch works.
  • Update 2026-06-24 (thesis-builder run, tenth blocked attempt): queue empty again; the fetch half was re-attempted and refused with the identical provenance restriction on the data.sec.gov companyconcept endpoint for CIK 0001801368 (MarketableSecuritiesCurrent) — "URL not in provenance set." No alternative retrieval attempted per data-integrity-gate; no figures touched. Ten consecutive runs (06-11, 06-12, 06-15, 06-16, 06-17, 06-18, 06-19, 06-22, 06-23, 06-24) now confirm the run environment cannot reach EDGAR — an environment-level fetch-provenance issue, not a pipeline fault. The four MP verification URLs remain listed in 2026-06-24-thesis-builder for the paste-into-chat unblocking path. Note: the deterministic host-run price puller built 2026-06-23 does not close this item — it addresses the price surface, not the EDGAR fundamentals fetch. Forward exposure restated and now ten runs overdue for a user decision: the next fresh-ticker build will sit at data_integrity_gate: pending with verdict withheld until EDGAR fetch works.
  • Update 2026-06-25 (thesis-builder run, eleventh blocked attempt): queue empty again; the fetch half was re-attempted and refused with the identical provenance restriction on the data.sec.gov companyconcept endpoint for CIK 0001801368 (MarketableSecuritiesCurrent) — "URL not in provenance set." No alternative retrieval attempted per data-integrity-gate; no figures touched. Eleven consecutive runs (06-11, 06-12, 06-15, 06-16, 06-17, 06-18, 06-19, 06-22, 06-23, 06-24, 06-25) now confirm the run environment cannot reach EDGAR — an environment-level fetch-provenance issue, not a pipeline fault. The four MP verification URLs remain listed in 2026-06-25-thesis-builder for the paste-into-chat unblocking path. Forward exposure restated and now eleven runs overdue for a user decision: the next fresh-ticker build will sit at data_integrity_gate: pending with verdict withheld until EDGAR fetch works.
  • Update 2026-06-26 (thesis-builder run, twelfth blocked attempt): queue empty again; the fetch half was re-attempted and refused with the identical provenance restriction on the data.sec.gov companyconcept endpoint for CIK 0001801368 (MarketableSecuritiesCurrent) — "URL not in provenance set." No alternative retrieval attempted per data-integrity-gate; no figures touched. Logged in 2026-06-26-thesis-builder (the Backlog update line was skipped that run; recorded here for the ledger). Twelve consecutive runs (06-11 through 06-26) confirm the run environment cannot reach EDGAR — an environment-level fetch-provenance issue, not a pipeline fault.
  • Update 2026-06-29 (thesis-builder run, thirteenth blocked attempt): queue empty again (first session after the June 27–28 weekend; today's 2026-06-29 scan wrote no first-reads and fired no watchlist trigger). The fetch half was re-attempted and refused with the identical provenance restriction on the data.sec.gov companyconcept endpoint for CIK 0001801368 (MarketableSecuritiesCurrent) — "URL not in provenance set." No alternative retrieval attempted per data-integrity-gate and hard prohibition #5; no figures touched. Thirteen consecutive runs (06-11, 06-12, 06-15, 06-16, 06-17, 06-18, 06-19, 06-22, 06-23, 06-24, 06-25, 06-26, 06-29) now confirm the run environment cannot reach EDGAR — an environment-level fetch-provenance issue, not a pipeline fault. The four MP verification URLs remain listed in 2026-06-29-thesis-builder for the paste-into-chat unblocking path. Forward exposure restated and now thirteen runs overdue for a user decision: the next fresh-ticker build will sit at data_integrity_gate: pending with verdict withheld until EDGAR fetch works.
  • Update 2026-06-30 (thesis-builder run, fourteenth blocked attempt): queue empty again (today's 2026-06-30-AM scan wrote one first-read — LILA/first-read-2026-06-30, decision: shelve-with-trigger — and fired no watchlist trigger). The fetch half was re-attempted and refused with the identical provenance restriction on the data.sec.gov companyconcept endpoint for CIK 0001801368 (MarketableSecuritiesCurrent) — "URL not in provenance set." No alternative retrieval attempted per data-integrity-gate and hard prohibition #5; no figures touched. Fourteen consecutive runs (06-11, 06-12, 06-15, 06-16, 06-17, 06-18, 06-19, 06-22, 06-23, 06-24, 06-25, 06-26, 06-29, 06-30) now confirm the run environment cannot reach EDGAR — an environment-level fetch-provenance issue, not a pipeline fault. The four MP verification URLs remain listed in 2026-06-30-thesis-builder for the paste-into-chat unblocking path. Forward exposure restated and now fourteen runs overdue for a user decision: the next fresh-ticker build will sit at data_integrity_gate: pending with verdict withheld until EDGAR fetch works.
  • Status: open — fetch/verification half pending; blocked on environment EDGAR access (14 consecutive runs, 06-11 through 06-30). Escalation suggested: this is now a standing environment dependency, not a transient fault — recommend the user action one of the two unblocking paths (paste the four EDGAR URLs into a chat message before a manual run, or add sec.gov to the environment's fetch-provenance allow-set) before the next fresh first-read escalates.

(original item, now closed)

P2 — Recompute MP Materials EPV from corrected consolidated adjusted EBITDA (NEW 2026-06-10, audit-log #013)

  • What: The MP Materials thesis (built 2026-06-09) used $46.3M (the segment sum) as Q1 2026 consolidated adjusted EBITDA; the reported consolidated figure is $36.6M. The §5 Method 1 EPV annualizes the wrong figure ($185M instead of ~$146M), so the EPV-per-share band ($8–12) is overstated and needs recomputation. While recomputing, reconcile the three EPV-floor figures that already disagree across the bundle: thesis §5 "$8–12," shadow-matrix "$11" (Klarman central), and the 2026-06-09 PM research note "$7.50."
  • Why (mission test): the EPV is the thesis's downside floor and one of its valuation anchors; an overstated floor understates the margin of safety the trigger is built on. The headline verdict (pass-with-trigger, central $50, trigger $42) rests on the asset/replacement anchor, not the EPV, so the conclusion is directionally safe — but the floor and the EV/EBITDA cross-check (corrected ~65x, not ~50x) feed the kill-criteria and the sizing logic, and an internally inconsistent EPV weakens the bundle if it is ever leaned on.
  • Evidence: audit-log entry #013. The factual EBITDA figure has been corrected in place in MP-thesis (§2, §5 Method 1, §5 Method 4) with [corrected 2026-06-10] markers; the EPV-per-share recompute is analytical (it touches the valuation conclusion) and is therefore Tier 2, not a groundskeeper edit.
  • Priority: P2 — does not change the verdict but leaves a known-overstated floor and a within-bundle inconsistency in a live watchlist thesis.
  • Execution scope: Tier 2 — re-derive the EPV; for the thesis-builder or user, not the optimization run.
  • Status: awaiting execution by the thesis-builder/user.

P1 — Activity Boost Package (STAGED, awaiting 3-day test verdict)

  • Proposal file: activity-boost-package
  • What: Four scheduled-task-layer changes that take the pipeline from ~1-2 theses/week to ~7/week without modifying any soul file, framework standard, vault structure, or artifact template. (1) Thesis-builder fallback to graduate shelved first-reads + pull from a Coverage queue. (2) Builder cron extended from Mon-Fri to daily. (3) AM scan first-read cap raised 3→5 and MoS evaluation moved from Tier-1 gate to first-read body. (4) New ## Coverage queue section in this Backlog file.
  • Why staged: User wants a 3-day test (2026-05-26 through 2026-05-28) of the current pipeline first. If the test returns pass per the rubric in the proposal file §1, this package stays staged. If soft-pass or fail, execute the package as-specified.
  • Test verdict due: 2026-05-29 morning.
  • Execution scope: Tier 2 (modifies scheduled-task prompts + cron + this Backlog file). Time to execute when approved: ~10 minutes. Fully reversible in ~5 minutes per §6 of the proposal.
  • Status: STAGED, prepared in full detail. Awaiting user signal.

✓ Resolved 2026-06-08 — MP Materials "phantom handoff" — research notes asserted a live Backlog-P1 thesis pass with no artifact behind it

  • FOLLOW-ON 2026-06-09 — full thesis now built [COMPLETED 2026-06-09]. The $60 trigger fired Monday 06-08 and the 06-09 AM/PM scans escalated the build. The thesis-builder wrote the full bundle at 09-Theses/MP/MP - JUN2026/ (MP-thesis, MP-shadow-matrix, MP-consensus-gap, MP-calibration, model.xlsx) and the landing MP. Verdict: pass-with-trigger, central $50, trigger $42 — a downward correction of the dossier's $85/$60 placeholder, because the $85 fails Greenwald's gating tests (it is the Mauboussin-frame number). Routed to Watchlist. The phantom-handoff thread is now fully closed end-to-end: drift flagged → first-read filed (06-08) → trigger fired → thesis built (06-09). See 2026-06-09-thesis-builder.

  • RESOLVED 2026-06-08 via option (a) by the daily deep-value scan (2026-06-08): the missing artifact now exists at MP/first-read-2026-06-08. The first-read decision is shelve-with-trigger at $60 (EPV gives no support at ~$64 — the price is asset/option, not earnings; the deep-value asymmetry opens below $60 backstopped by the $110/kg DoD floor). This both closes the gap and corrects the framing: MP is a shelve-with-trigger name, not a live full-thesis-in-progress, so the recurring "live Backlog-P1 thesis pass" reference in the AM/PM/scan stream was misframed — no full-thesis Backlog escalation is queued. If $60 prints, the first-read escalates to a full thesis (asset-value + cycle triangulation). The original item is preserved below for the audit trail.

(original item, now resolved)

  • What: Since 2026-06-03 the AM/PM research notes and daily scans have repeatedly named an MP Materials thesis pass as "the week's one live action item," "flagged urgent," and "carries at Backlog P1." No such artifact or queue entry exists: there is no 09-Theses/MP/ folder, no MP Materials first-read anywhere in the vault, and no Backlog P1 entry of the form "Build full thesis on MP." The only Backlog mention of MP sits inside the rationale of the critical-minerals dossier — a dossier request, not a thesis-build escalation.
  • Why this matters (mission test): the research-note layer is telling the operator a time-sensitive deep-value entry is being prepared when nothing is staged. If the rare-earth risk-off window the notes keep anticipating actually opens, the kit would be doing first-pass work inside a falling tape — exactly the failure the notes themselves warn against. Resolving the drift protects the ability to act on a real mispricing.
  • Evidence: 2026-06-03-thesis-builder, 2026-06-04-thesis-builder, and 2026-06-05-thesis-builder each flag the gap (now three consecutive no-op builder runs explicitly escalating it to "a standing cross-artifact drift worth a user decision"); 2026-06-05-AM (top-of-mind + capital-cycle-inflection + watchlist lines), 2026-06-05-PM (MP Materials bullet + "complete the thesis pass now"), and the 06-05 daily scan all carry the live-action-item framing.
  • Resolution (one of): (a) file the missing MP Materials first-read and a matching Backlog P1 escalation if the handoff is real, or (b) correct the recurring AM/PM/scan reference if the handoff was misframed (e.g., it points at the critical-minerals dossier, a different artifact class). Either closes the gap.
  • Priority: P2 — not blocking a thesis or scan, but a three-day-and-counting cross-artifact inconsistency that the builder cannot fix autonomously (it does not write first-reads or file escalations, and editing research-note prose changes meaning, so it is outside Tier 1).
  • Execution scope: Tier 2 — needs user execution (file the first-read + escalation, or correct the prose). The optimization run cannot do either autonomously.
  • Status: awaiting user decision.

P2 — Voice-and-style doctrine not propagating into new AM/PM prose (post-2026-05-28)

  • What: The voice-and-style doctrine landed 2026-05-28 02:09 UTC and the AM-29 / PM-29 / AM-30 / PM-30 research notes — all written after the doctrine — continue to use compound-hyphen jargon constructions the doctrine explicitly bans. Grep on AM-30 + PM-30 alone returns 29 occurrences across the patterns "architectural-confirmation-vs-content-conflict / architecture-confirmation-vs-content-conflict / physical-evidence-on-the-ground / principal-signature operational latency / cohort-pricing-mechanism / quantified-management-structural-catalyst." The doctrine is not propagating into new prose.
  • Proposed change: add a fourth discipline rule to am-pm-template alongside primary-source pre-flight / price-action cap / plain-English constraint — a compound-hyphen-modifier cap. Concretely: no compound-noun phrase of three or more words joined by hyphens or slashes per sentence; banned-construction list in voice-and-style §"Banned constructions" applies as a write-time checklist box, not just an aspirational rule. The bidaily template prompt should include the same kind of explicit checklist box the primary-source pre-flight addition added.
  • Why: the existing P2 backlog item below is a retrospective rewrite of pre-doctrine prose (AM-26 through long-form 2026-05-27). The new finding is different — post-doctrine prose is reproducing the exact patterns the doctrine forbids. Without a write-time discipline addition the doctrine reads as a rule the kit nominally follows but its current artifacts do not exemplify, which weakens the doctrine the moment it is invoked as authority.
  • Evidence: 2026-05-30-AM (12 banned-construction occurrences) and 2026-05-30-PM (17 banned-construction occurrences) post-doctrine; the same patterns appeared in 2026-05-29-AM and 2026-05-29-PM which the optimization run flagged in passing but did not file as a backlog item. The pattern has now persisted across four consecutive bidaily notes after the doctrine landed.
  • Priority: P2 — doctrine-discipline-propagation gap, parallel structure to the existing P1 portfolio-task benchmark-sourcing item. Affects every bidaily note going forward; compounds quickly.
  • Execution scope: Tier 2 — modifies the AM/PM template prompt and the codified discipline-rule list. Cannot be executed autonomously by the optimization run because the optimization run cannot change another scheduled task's prompt.
  • Status: awaiting approval. If approved, the addition pairs naturally with the existing primary-source pre-flight checklist box.

P3 — Sources-block convention for T4 orientation-only references

  • What: The 2026-05-30-AM Sources block contains a Wikipedia link to "Timeline of the 2026 Lebanon war" explicitly tagged "[T4 banned per sources-policy; not used as evidence; surfaced as orientation only]." The author is being transparency-positive (disclosing the orientation source rather than hiding it), but the sources-policy is explicit that T4 sources "are not citable," and a Sources block is by convention a citation surface.
  • Question for doctrine: when an author orients from a T4 source and consciously does not cite it as evidence, where should the orientation be recorded? Three options: (a) omit entirely (current strict-policy reading); (b) keep in Sources block with the T4-banned tag (current AM-30 pattern, transparency-positive but technically off-convention); (c) add a separate "Orientation only" subsection under Sources that explicitly is not a citation surface, with the T4-banned tag enforced as a constraint.
  • Why: the AM-30 pattern is well-intentioned and the disclosure is itself discipline-positive. But two-out-of-three readings of sources-policy suggest the Wikipedia entry should not appear in a Sources block, and the third (option c) would require a doctrine update. Worth resolving once before the pattern propagates further.
  • Priority: P3 — single-instance occurrence; the author's pattern is well-intentioned; resolution is a small doctrine clarification, not a structural change.
  • Status: awaiting doctrine resolution. No autonomous edit on AM-30 pending decision — removing the disclosure would erase a transparency-positive artifact; preserving it raises the policy-surface question.

P2 — Style-discipline compliance pass on prose written before voice-and-style landed

  • Proposed change: retrospective rewrite of compound-hyphenated jargon constructions and ticker-in-prose patterns in the recent research notes, scans, first-reads, and the Wednesday long-form. Specific files in scope: 2026-05-27-PM, 2026-05-27-AM, 2026-05-26-PM, 2026-05-26-AM, 2026-05-27-hbm-replaces-cowos-binding-constraint-inversion, 2026-05-26-decomposing-brent-99-implied-trinary, 2026-05-25-pltr-beat-and-fade-bifurcation, BLDR/first-read-2026-05-26, LULU/first-read-2026-05-27, FCN/first-read-2026-05-25, plus the two recent daily scans.
  • Why: the voice-and-style doctrine file was created 2026-05-28 02:09 UTC and its "failure mode" before-example is a verbatim quote of the HP paragraph in 2026-05-27-PM. The doctrine was distilled from yesterday's prose. The same compound-hyphen constructions appear repeatedly across the listed files: "long-duration software / AI-infrastructure-upstream multiple," "cycle-late-selectivity falsifier," "FY-trajectory-vs-implied cut," "acceleration-with-multi-year-trajectory-extension-vs-anything-less," plus tickers used directly in narrative prose where company names should appear. Without a retrospective pass, the doctrine reads as a rule the kit nominally follows but its recent artifacts do not exemplify — which weakens the doctrine the moment a future artifact violates it.
  • Evidence: voice-and-style §1 "The failure mode this file exists to prevent" quotes verbatim from 2026-05-27-PM (the HPQ paragraph). The seven rules of voice-and-style §3 each map to recurring violations in the listed files. The rewrite is Tier 2 because changing prose changes meaning, and the kit cannot autonomously decide which meaning to preserve.
  • Priority: P2 — the doctrine is operative for new prose starting today; the retrospective pass is structural-quality work that does not block any single thesis or scan, but it makes the doctrine load-bearing rather than aspirational.
  • Status: awaiting approval. If approved, the pass should run file-by-file with a before/after diff so the user can confirm meaning is preserved.

P2 — Quality-compounder-at-52-week-lows dossier

  • Proposed location: 13-Research/Themes/quality-compounders-at-lows.md
  • Why: the AM-27 daily scan flagged a forming cross-sectional cluster of quality compounders trading near 52-week lows — LULU at $126.74 explicitly, with press references to BRK.B, V, MA, PG, ZTS, WCN, ADBE all in the same range depending on the screen. The PM-27 scan repeated the cluster signal independently using Trefis's "Stocks Trading At 52-Week Low" surface. The pattern crosses the 3-confirmation threshold for theme-to-dossier promotion the kit's house-view discipline applies elsewhere (the same threshold that promoted the Iran MOU, critical minerals, and AI bottleneck dossiers to P1 backlog items). The bifurcation framing the kit is now using — AI-infrastructure cohort extension at one end of the multiple distribution, quality-compounder compression at the other — needs a persistent home so each scan does not re-derive it.
  • Evidence: 2026-05-27-AM Tier 3 pattern observations section ("Quality compounders at 52-week lows — broader cluster forming"); 2026-05-27-PM pattern observations section ("Quality compounders at 52-week lows continue to form a cross-sectional cluster"); 2026-05-26-PM noted BKNG as the first single-name instance the week prior; AM-26 and PM-26 carried the BKNG observation forward; the LULU first-read LULU/first-read-2026-05-27 is the cluster's first kit-resident name. Three independent scan-level observations now reference the same cohort.
  • Priority: P2 — useful structurally because the cluster will recur in scans and a single dossier prevents redundant cross-sectional framing each pass. Less urgent than the Iran MOU dossier (which has a timing variable) but on the same shelf as the AI bottleneck dossier.
  • Status: awaiting approval. If approved, the optimization run can scaffold the dossier on the next pass; the cross-sectional roster (LULU, BKNG, BRK.B, V, MA, PG, ZTS, WCN, ADBE, others as they surface) and the bifurcation framing already exist in the cited research artifacts.

P2 — Synchronized-tightening-on-an-energy-shock Themes dossier

  • Proposed location: 13-Research/Themes/synchronized-tightening-energy-shock.md
  • Why: Two of the three largest central banks are pricing tightening into the same two-week window on the same Middle East energy pass-through. The Fed has a live 2026-hike scenario after the May payrolls print; the ECB is ~97% priced for a 25 bps hike to a 2.25% deposit rate on June 11, on eurozone May inflation of 3.2% with energy +10.9% (both verified clean this run). The June 6 PM note adds the demand-destruction side — China's May seaborne crude imports fell to 6.36M bpd from 8.10M in April, the weakest since October 2016 — which gives the theme its stagflation shape: supply-driven prices up, real activity down. The mechanism (the discount rate is the variable moving the market, and an energy shock is moving it) recurs in every macro note and deserves a persistent home rather than re-derivation each pass.
  • Evidence: 2026-06-06-AM "Themes emerging" and "House view changes this run" item 4 (explicit Tier 2 proposal); 2026-06-06-PM "Themes emerging" (China demand-destruction confirmation); the theme has surfaced across three consecutive notes via the Brent curve, the US rate path, and the euro-area print, crossing the 3-confirmation threshold the kit applies to dossier spin-outs.
  • Priority: P2 — recurring macro theme with a near-term test (CPI Wednesday into the ECB Thursday); on the same shelf as the quality-compounders dossier. Less urgent than the unapproved P1 Iran MOU / critical-minerals / AI-bottleneck dossiers, which keep priority.
  • Execution scope: Tier 2 — new Themes file, structural per vault convention (the three existing theme dossiers are all queued, not executed). The optimization run cannot create it autonomously.
  • Update 2026-06-12: the theme's second leg resolved 2026-06-11 — the ECB hiked 25 bps to 2.25% (first since September 2023, justified by the war's energy pass-through) while Lagarde declined to ratify the three-further-hikes market path, and May PPI printed two-sided (energy-concentrated headline +1.1%/6.5%; core +0.8% MoM, largest since March 2022). All figures verified against the ECB release and BLS this run. 2026-06-11-PM calls the drafting evidence complete; the Fed dot plot June 16–17 is the third leg. The item stays queued awaiting approval.
  • Status: executed (v1) by the 2026-06-12 Friday long-form run — saved as 13-Research/long-form/themes/2026-06-12-synchronized-tightening-energy-shock-v1.md (the Friday thematic slot is the approved dossier mechanism, per the critical-minerals and AI-infrastructure precedents). House view Themes entry promoted to dossier (v1). Refresh in 8 weeks or earlier on a forward-observable threshold; the Fed leg June 16–17 is the first test.

P2 — Cohort-pricing-progression Themes dossier

  • Proposed location: 13-Research/Themes/cohort-pricing-progression.md
  • Why: The kit has documented a four-stage arc in how the AI-infrastructure cohort reprices: broken at the index, absorbed by rotation, propagated across borders, then converged into broad risk-off on a macro hinge. Friday's $1T single-session chip drawdown was the convergence stage. Each note re-derives the arc; a dossier would hold it once and let new instances (CPI Wednesday into Oracle is the next live test) be logged against a fixed frame rather than restated.
  • Evidence: 2026-06-06-AM and 2026-06-06-PM both name the progression as "overdue" for a dossier; the four stages appear across the 06-05 and 06-06 notes; the convergence mode was named in the 06-05 PM note and carried forward.
  • Priority: P2 — structural; recurs in every cycle-positioning note but has no hard timing gate.
  • Execution scope: Tier 2 — new Themes file, structural. Cannot be created autonomously by the optimization run.
  • Status: awaiting approval.

P2 — Great Rotation / small-cap-breadth on a hawkish tape Themes dossier (NEW 2026-06-22 PM)

  • Proposed location: 13-Research/Themes/great-rotation-small-cap-breadth.md
  • Why: The equity-cycle section has carried a "narrow breadth, do not extrapolate the AI-led rally" read since 2026-05-25. That read is now being tested by a genuine rotation: on 2026-06-22 the Russell 2000 closed above 3,000 for the first time (+0.83% to 3,004.40) while the Nasdaq fell 1.32% and the Dow rose, led without the rate-cut bid that usually carries small-caps and on a 10Y rising to ~4.48% T3. The pattern is the cross-sectional twin of the duration overlay (longest-duration megacap tech sold hardest on a yield move with no catalyst). A dossier would hold the "rotation underway on a hawkish tape" frame once and let new sessions be logged against it rather than re-derived, and would force the discipline of distinguishing a durable breadth-broadening from a reconstitution-week / index-flow artifact.
  • Evidence: the breadth signal surfaced across 2026-06-18-PM (Russell 2000 +2.02% leading the relief tape), 2026-06-22-AM (small-cap-breadth watch into a strong-dollar open), and 2026-06-22-PM (first close above 3,000) — three instances inside a week, crossing the 3-confirmation threshold the kit applies to dossier spin-outs.
  • Priority: P2 — structural equity-cycle theme with a near-term confounder to control for (the June Russell reconstitution effective after the June 26 close, which mechanically moves small-cap flows).
  • Execution scope: Tier 2 — new Themes file, structural per vault convention; the daily run cannot create it autonomously.
  • Status: awaiting two more confirming sessions before spin-out, per the PM-22 note; pre-registered here.

P3 — Micron memory long-form: "highest print ever recorded" framing contradicts the file's own margin table (NEW 2026-06-23)

  • What: The 2026-06-22 memory-margin long-form 2026-06-22-memory-margin-peak-or-plateau states, in its analysis of why the gross-margin guide matters, that the guided ~81% FQ3 gross margin "is roughly 22 points above the highest print Micron has ever recorded." The same file's data table and setup section show Micron printed a 74.9% non-GAAP gross margin in FQ2 FY26, reported March 2026 T1. The 22-point gap is measured against the 2018 prior-cycle peak of 58.9% T3, not against the highest print ever recorded, which is the 74.9% sitting roughly 6 points below the 81% guide. The sentence contradicts the file's own table.
  • Why (mission test): the report's variant — a record memory margin capitalized at a non-trough multiple precedes poor forward returns — is unaffected; 81% is unprecedented and at a cycle peak either way. But the kit's edge rests on precision, and a load-bearing "highest print ever recorded" claim that the same file's table refutes is exactly the internal inconsistency the source discipline exists to catch. Correct framing: "22 points above Micron's prior-cycle peak of 58.9% in 2018" or "6 points above its most recent record of 74.9% in FQ2 FY26."
  • Evidence: 2026-06-22-memory-margin-peak-or-plateau §"The analysis" (the "22 points above the highest print" sentence) against the same file's §"Charts / data" table (FQ2 FY26 at 74.9%) and §"The setup" (74.9% described as a then-record).
  • Priority: P3 — one sentence; the thesis direction is unchanged; the fix is a precise re-characterization, not a structural change.
  • Execution scope: Tier 2 — editing the analytical prose of a research long-form changes its meaning; the optimization run flags it, it does not rewrite.
  • Status: awaiting approval, or self-correction at the next builder touch on the file.

P2 — Financing-the-buildout named sub-pattern (AI-infrastructure dossier section or standalone tracker)

  • Proposed location: new section in 13-Research/long-form/themes/2026-06-05-ai-infrastructure-capacity-dossier-v1.md at its next refresh, or 13-Research/Themes/ai-buildout-financing-layer.md if the marker cadence keeps accelerating
  • Why: Debt and equity are now visibly funding AI capex at four different layers of the stack inside one week — Broadcom-Apollo-Blackstone $35B private-credit platform (custom silicon, 2026-06-09/10 AM), Super Micro $7.0B raise (server integrator), Oracle ~$40B plan incl. $20B share sale (cloud, 2026-06-10 PM), CoreWeave $3.5B senior notes due 2032 (neocloud, 2026-06-11 AM). The Phase 2 capital-cycle reading predicts exactly this capital-influx crescendo; the markers are currently scattered across daily notes and re-listed each run. A named sub-pattern would hold the register once (date, issuer, layer, instrument, size) and let each new marker be one row instead of one paragraph. The register is also the raw material for the dossier's Phase 3 transition call — the moment financing terms deteriorate (rates up, equity windows shut) is the observable the variant view trades on.
  • Evidence: 2026-06-10-AM (Broadcom-Apollo-Blackstone logged as Phase 2 escalation), 2026-06-10-PM "Themes emerging" (third marker in 48 hours; "belongs in the AI-infrastructure dossier's capital-cycle section as a named sub-pattern"), 2026-06-11-AM (fourth marker; explicit Tier 2 proposal), 2026-06-11-PM (fifth and largest marker: SpaceX $75B IPO — 555,555,555 shares at $135, ~$1.75T valuation, equity at the model/application layer T3 — priced into the same week the Magnificent Seven shed ~$2T of June market value). Crossed the 3-confirmation threshold on 2026-06-10; the cadence since argues for a register, not just a mention.
  • Priority: P2 — same shelf as the synchronized-tightening dossier; the dossier refresh it attaches to is already scheduled (8 weeks from 2026-06-05, or earlier on a material event).
  • Execution scope: Tier 2 — modifies a long-form dossier or creates a Themes file. Cannot be executed autonomously by the research run.
  • Status: awaiting approval. Proposed by 2026-06-11-AM.

P2 — Dedicated insider-signal-decoding skill

  • Proposed location: 02-Business-Quality/Management/insider-signal-decoding.md
  • Why: insider Form 4 cluster reads have surfaced in multiple files (FCN first-read 2026-05-25; daily scans referencing the pattern; PLTR thesis insider-selling section). Currently the kit treats insider activity inside incentive-alignment-and-comp.md and governance-red-flags.md in passing. A dedicated skill on cluster reads, 10b5-1 vs open-market discrimination, timing-pattern interpretation, base rates on cluster-buy outcomes would tighten the analysis.
  • Evidence: FCN first-read invokes the pattern but had to substitute incentive-alignment-and-comp as the nearest existing reference. The 2026-05-25 AM scan elevates this as a recurring screen with no dedicated framework file.
  • Status: awaiting approval. Skill creation is Tier 2.

✓ Closed 2026-05-24 — Doctrine recalibration to Greenwald-modified deep value

Both P1 items surfaced via PLTR-consensus-gap (EPV-only default fix, PLTR refresh) were approved and executed on 2026-05-24 as part of a broader doctrine recalibration. Specifics:

This was a soul-level change executed under explicit user approval, not autonomous Tier 1 work. Full audit trail in the calibration event log.

✓ Closed 2026-05-25 — PLTR.md aggregator hub and superseded AI dossier

  • PLTR.md aggregator hub (P2)implemented. File exists at 09-Theses/PLTR/PLTR.md with canonical "stable wiki target" content; all 12 [PLTR](/theses/PLTR) references resolve. Likely landed as part of the 2026-05-24 doctrine recalibration batch. Closed in-place; no Closed/ snapshot available since the change predates the run that would have produced one.
  • AI infrastructure thematic dossier (P3, formerly under "P3 — Operational improvements")superseded. Duplicates the newer P1 AI bottleneck (upstream rent) dossier in the "P1 — Themes/ dossier spin-outs" section. The P1 remains awaiting user approval; this closure is de-duplication only.

P1 — Skill gaps (from kit-debrief-001-PLTR)

Software & SaaS economics skill

  • Proposed location: 02-Business-Quality/Fundamentals/software-and-saas-economics.md
  • Why: PLTR thesis identified this as the highest-priority skill gap. ARR, NRR, gross retention, billings, deferred revenue, ASC 606, Rule of 40, magic number, payback period — none of these are deep-treated in current Fundamentals.
  • Evidence: kit-debrief-001-PLTR Gap 1. Will be needed for any future SaaS, AI infrastructure, or enterprise software thesis.
  • Status: awaiting approval to write

Primary-research workflow skill

  • Proposed location: 02-Business-Quality/Research/primary-research-workflow.md (new subfolder)
  • Why: The soul talks about Tier 1-2 evidence (filings, channel checks, expert calls, ex-employee outreach, the product itself) but the kit has no codified workflow for actually doing this.
  • Evidence: [ki

](/brain/ki

##-✓-resolved-2026-06-28-—-the-early-cron-"closes-file-not-yet-settled"-bug-(was-the-standing-p1,-logged-~10×)-closed-at-the-scheduler-level-per-[[external-audit-2026-06-28) (user-authorized). The PM scan (alphasteve-daily-deep-value-scan-pm) was firing ~3:30 PM ET, before the 4:00 PM ET cash close, so the canonical closes file could never settle — logged as a fresh P1 on June 15/16/17/18/22/23/24/25/26. The fix did not require the unwired _Tools/marketdata/market_close.py host-run layer: the root cause was the cron trigger time. Resolved by moving the schedules (local time, UTC−3):

  • alphasteve-daily-deep-value-scan-pm: 16:30 → 18:00 local (≈5 PM ET) — writes settled closes after the cash close.
  • alphasteve-portfolio-daily: 17:00 → 19:00 local (≈6 PM ET) — reads the settled closes the PM scan has written.

All prior "not-yet-settled" P1 instances are considered closed by this single structural fix. If a closes file is still unsettled at portfolio-daily run time after 2026-06-29, re-open as a NEW P1 (it would indicate a different cause).

P1 — Back-fill the miss-tracking ledgers (NEW 2026-06-28, audit M1)

  • What: Populate Near-Miss-Ledger with every real pass/avoid/shelve since inception (BLDR, FCN, GIL, GIS, GO, HRZN, INTU, PLAB, ROCK, SPOK, RMD, LULU, + watchlist PLTR/CAG/MP), with price-at-decision stamped from the closes files; and fill the Shadow-Book Current $ / Return-if-bought-at-pub columns. Then mark both live every weekly pass.
  • Why (mission test): these ledgers are the kit's only instruments for detecting over-conservatism (the audit's core finding); empty, they leave the Rules over-conservatism tripwire blind.
  • Priority: P1 — front of queue; blocks the M3 tripwire from functioning.
  • Status: owed by the next portfolio-daily + weekly optimization run.

P1 — Re-run the existing 15 names through the recalibrated ruler (NEW 2026-06-28, audit follow-up)

  • What: Re-price BLDR, CAG, FCN, GIL, GIS, GO, HRZN, INTU, LULU, MP, PLAB, PLTR, RMD, ROCK, SPOK under the recalibrated margin-of-safety-pricing single-discount bands (MoS off the midpoint, EPV not the default for growers). Record which now produce an actionable trigger vs. current price. This is the empirical test of "broken ruler vs. expensive market."
  • Why (mission test): directly tests whether the doctrine recalibration converts watch-only names into actionable ones; the answer recalibrates conviction in the fix itself.
  • Priority: P1.
  • Status: owed.

P2 — Audit scan/thesis-builder task prompts for stale valuation language (NEW 2026-06-28)

  • What: Review alphasteve-daily-deep-value-scan and alphasteve-thesis-builder SKILL prompts for any hardcoded old MoS percentages (25–30/40/50/60–70), "EPV-only fallback" defaults, or band-low-edge trigger language that now contradicts the recalibrated banded-valuation-standard / margin-of-safety-pricing. Align to the single-discount-off-midpoint doctrine.
  • Priority: P2 — the doctrine files are authoritative and the prompts reference them, but stale hardcoded numbers in a prompt can override the file at runtime.
  • Status: owed.