Skip to content

chore(cleanup): post-cron-#69 — BK orphan removal + 3 doc drifts#290

Merged
dackclup merged 1 commit into
mainfrom
claude/cleanup-post-cron-69
May 28, 2026
Merged

chore(cleanup): post-cron-#69 — BK orphan removal + 3 doc drifts#290
dackclup merged 1 commit into
mainfrom
claude/cleanup-post-cron-69

Conversation

@dackclup
Copy link
Copy Markdown
Owner

Summary

Post-cron-#69 cleanup bundle. Cron run #69 surfaced 3 findings via defense-layer-auditor + stock-detail-auditor audit; this PR addresses the 4 small items (1 stale-file removal + 3 doc drifts). The 2 larger findings (GOOG/GOOGL XBRL + NVR DQIC ceiling) are filed as issues #288 + #289 for scoped follow-up.

Changes

1. frontend/public/data/stocks/BK.json (DELETED) — stale orphan file

Bank of NY Mellon renamed to BNY on 2026-05-26 (commit b7514cf8); BNY.json was created with fresh data but old BK.json was never purged. The stale file claims rank: 230 which now belongs to GEHC — users navigating /stock/BK would see data conflicting with GEHC's current position. defense-layer-auditor Section H universe-consistency FAIL clears after this merges.

Systematic writer-purge pattern (so ticker renames automatically clean up old stock files) is out of scope; tracked separately.

2. CLAUDE.md §Stack — version refresh

TypeScript 5.4 · Recharts 2.12TypeScript 5.9 · Recharts 2.15 to match actual frontend/package.json pins. Both were bumped within their major bands during PR #215 (LedgerCraft Phase 3c, 2026-05-22) but CLAUDE.md §Stack never caught up. Closes security-reviewer W2 (2026-05-28).

3. CLAUDE.md §Gotchas — env-var inventory completion

New bullet documenting GITHUB_RUN_ID + GITHUB_SHA (auto-provided by GitHub Actions runner; read at compute/main.py:1965-1966; surface into Metadata.compute_run_id + Metadata.git_commit for audit trail). Closes security-reviewer W1 (the env-var inventory was incomplete per the project's "new env-var = documented" invariant).

4. .claude/agents/dependency-auditor.md — frozen-pin baseline fix

edgartools 2.30edgartools 5.31 (5.x band, <6 upper bound per pyproject.toml). The 2.30 reference predates the project's migration to the 5.x band during Form-4 integration work (PR #210, Filing.obj method-vs-property reclassification). Self-stale baseline would have caused future dependency-auditor audits to incorrectly flag the live 5.31.5 pin as a regression. Closes dependency-auditor informational finding (2026-05-28).

Findings deferred to scoped follow-up issues (not in this PR)

Issue Title Spawn target
#287 perf: revert FORM4_FETCH_SKIP=1 from weekly cron + ship durable 5-loop timeout fix performance-engineer (blocks Q3 cohort audit)
#288 bug(ingest): PR #269 GOOG/GOOGL per-class XBRL fix never fires edgar-debugger (live XBRL probe)
#289 bug(valuation): NVR DQIC ceiling false positive methodology-scientist (Mode B verdict on Option A/B/C)

Verification

  • ruff check . — N/A (no Python touched)
  • python -m compute.output.schema_check — N/A (no schema touched)
  • pytest tests/ -m "not network" — N/A (no test surface)
  • BK orphan removal verified clean: 502 ranking entries == 502 stock files post-removal (Section H invariant holds)

What's NOT in this PR

  • Systematic stock-file purge writer pattern (so future ticker renames auto-clean) — bigger scope, separate PR
  • AGENTS.md substance untouched per the delegation pattern (CLAUDE.md = SoT for §Phase status / Stack)
  • The 3 issues above — independently grabbable, no immediate PR

Test plan

  • CI green (Python lint+test, Frontend build, Vercel preview)
  • docs-reviewer (sonnet) substance review on the 3 doc drift items
  • Vercel preview confirms /stock/BK returns 404 (not the stale GEHC-conflicting page)

https://claude.ai/code/session_01AGU8d6pm4u2fQQ5cebg9qa


Generated by Claude Code

Bundled cleanup PR addressing post-cron-#69 audit findings from
`defense-layer-auditor` Section A-J + `stock-detail-auditor`
deterministic prefilter + LLM verdict pass. 1 stale file removal +
3 doc drifts.

Changes:
- frontend/public/data/stocks/BK.json (DELETED) — Bank of NY Mellon
  renamed to BNY on 2026-05-26 (commit b7514cf); old BK.json claimed
  `rank: 230` which now belongs to GEHC; users navigating `/stock/BK`
  would see stale data conflicting with another stock's position.
  Section H universe-consistency FAIL clears after this PR merges.
- CLAUDE.md §Stack — `TypeScript 5.4 · Recharts 2.12` → `TypeScript 5.9
  · Recharts 2.15` to match actual `frontend/package.json` pins.
  Closes security-reviewer 2026-05-28 W2.
- CLAUDE.md §Gotchas — new bullet documenting `GITHUB_RUN_ID` +
  `GITHUB_SHA` env-vars (auto-provided by GitHub Actions, read at
  `compute/main.py:1965-1966`, surface into `Metadata.compute_run_id`
  + `Metadata.git_commit`). Closes security-reviewer W1.
- .claude/agents/dependency-auditor.md Frozen-by-design pins —
  `edgartools 2.30` → `edgartools 5.31 (5.x band, <6 upper bound)`.
  Closes dependency-auditor 2026-05-28 informational finding.

Findings deferred to scoped follow-up issues (not in this PR):
- Issue #288 — GOOG/GOOGL PR #269 XBRL fix never fires; needs
  edgar-debugger live probe of Alphabet 10-K dimension axis structure
- Issue #289 — NVR DQIC ceiling false positive; needs
  methodology-scientist Mode B verdict on ceiling fix path

Doc-only + 1 file removal. No compute / schema / scoring / valuation /
frontend code change. AGENTS.md substance untouched per the existing
delegation pattern (CLAUDE.md is the SoT). PHASE_STATUS_INFLIGHT.md
side-file satisfies §Conventions lockstep per PR #237 convention.
@vercel
Copy link
Copy Markdown

vercel Bot commented May 28, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
quantrank Ready Ready Preview, Comment May 28, 2026 2:56am

@dackclup dackclup marked this pull request as ready for review May 28, 2026 03:01
@dackclup dackclup merged commit dea8e3a into main May 28, 2026
4 checks passed
@dackclup dackclup deleted the claude/cleanup-post-cron-69 branch May 28, 2026 03:01
dackclup added a commit that referenced this pull request May 28, 2026
… open-issues list (#291)

Closes deferred substance items from PR #286 + PR #290 that opted to keep
scope tight under the `pointer-to-CLAUDE.md` delegation pattern.

Changes (1 file, AGENTS.md):

- Line 377 — Production-verified run pointer bumped from cron #51
  (`b1588b2a`, 2026-05-14) → cron #69 (`233117ac`, 13m 16s warm-cache,
  2026-05-28). Cross-tool agents now have the current known-good
  baseline; verified by defense-layer-auditor + stock-detail-auditor
  on schema `0.10.7-phase4.6`.

- Lines 380-382 — "Open Phase 4+ issues" list refreshed from 4 → 11
  entries. Removed stale qualifier on #67 (PR #204 already landed
  data-collection; #67 is Phase 4 follow-up not Phase 5+). Added 7
  missing issues: #115 (JKP license) · #130 (Q3 cohort) · #137
  (9arm-skills license deadline 2026-06-17) · #150 (Phase 2-3 epic) ·
  #287 (FORM4 revert + durable timeout) · #288 (GOOG/GOOGL XBRL) ·
  #289 (NVR DQIC false positive). Added zero-exploitability context
  to #41.

Doc-only PR. No compute / schema / scoring / valuation / frontend /
Python / TS code change. CLAUDE.md substance untouched this PR
(PR #286 + PR #290 already bumped it); this PR closes the AGENTS.md
side of the lockstep. PHASE_STATUS_INFLIGHT.md side-file satisfies
§Conventions lockstep per PR #237 convention.

Co-authored-by: Claude <noreply@anthropic.com>
dackclup added a commit that referenced this pull request May 28, 2026
…+ bump pointers (#295)

End-of-day Track-A2 housekeeping. After 6 PRs landed on main today
(#286 / #290 / #291 / #292 / #293 / #294), the CLAUDE.md / PHASE_STATUS.md
/ SKILL.md pointers drifted again — schema bumped via PR #292
(0.10.7 → 0.10.8-phase4.6); USE_SECTOR_COE flipped via PR #294. This
PR closes the doc-drift loop so session N+1 reads correct state.

Changes (4 files, doc-only):

- CLAUDE.md §Phase status — schema `0.10.7-phase4.6 → 0.10.8-phase4.6`;
  defense layer narrative notes `USE_SECTOR_COE = True` post-#294;
  new "Post-tag production patches" subsection citing PRs #292 / #293
  / #294. "Recently merged" list prepended with 6 same-day entries;
  legacy "Earlier (PR #264 → PR #285)" subsection relabeled.

- PHASE_STATUS.md §Current state — schema mirror; new "Post-tag
  production patches" row; Production-run pointer `559c5269 →
  0ad1d57` (cron #69 chore-commit). "Recently merged" prepended.

- SKILL.md schema-version table — new top row for `0.10.8-phase4.6`
  (PR #292 GOOG/GOOGL XBRL fix + Rule 18 disambiguator).

- PHASE_STATUS_INFLIGHT.md — 6 stale `(in flight, 2026-05-28)`
  markers drained to `(merged 2026-05-28, <SHA>)` (PRs #286 / #290 /
  #291 / #292 / #293 / #294). Bodies preserved.

Doc-only PR — `ruff` / `schema_check` pass; no compute / schema /
scoring / valuation / frontend / Python / TS change. CLAUDE.md
substance touched (pointer block + Recently merged refresh).
AGENTS.md substance unchanged per the delegation-pattern (PR #291
already bumped this morning).

Co-authored-by: Claude <noreply@anthropic.com>
dackclup added a commit that referenced this pull request May 28, 2026
…rkers + bump pointers (#299)

Closes today's 10-PR cycle (#286 / #290 / #291 / #292 / #293 / #294 /
#295 / #296 / #297 / #298). Mirror of PR #286 (post-v1.4.0 cycle
drain) for the post-cron-#71 cycle.

Three stale `(in flight, 2026-05-28)` markers in
PHASE_STATUS_INFLIGHT.md drained to `(merged 2026-05-28, <SHA>)`:

  - PR #295 (`2d2ec83e`) — Post-session housekeeping drain 6 INFLIGHT
    + bump pointers
  - PR #297 (`ecb60e64`) — Issue #287 PR A: durable timeout + cache
    canary + per-loop wall-clock Metadata (schema 0.10.8 → 0.10.9-phase4.6)
  - PR #298 (`030675e9`) — Issue #288 follow-up: cache-key bump v4 → v5

Bodies preserved (historical record).

CLAUDE.md §Phase status — drained the "(In flight this PR — cache-v5)"
qualifier (PR #298 merged) + added post-PR-#298 confirmation note +
cron Run #71 production-verified pointer.

AGENTS.md open-issues list — #288 status flipped "(fix in flight this
PR)" → "(closed by PR #298 cache-v5 bump)" + clarified the silent-
failure root-cause + Run #72 verification gate.

Why this PR exists: without end-of-day drain, session N+1 reading
CLAUDE.md / PHASE_STATUS_INFLIGHT.md would see 3 PRs still marked
"in flight" despite them merging hours earlier — the same friction
pattern PR #286 closed for the post-v1.4.0 cycle. Three same-day
drains in one PR keeps the side-file disciplined.

Scope (3 files, doc-only):

  - PHASE_STATUS_INFLIGHT.md — 3 header substitutions + this PR's
    own in-flight entry appended per PR #237 side-file convention
  - CLAUDE.md §Phase status pointer refresh
  - AGENTS.md open-issues list #288 status update

Hard constraints honored:

  - No code / scoring / schema / valuation / Rule 16 / Top-5
    invariant touched
  - No new defense flag · No new dep · No new env-var
  - Doc-only diff (Markdown only)
  - Schema version UNCHANGED at 0.10.9-phase4.6 (no Pydantic / TS /
    snapshot change)

PHASE_STATUS_INFLIGHT.md side-file satisfies §Conventions "ship with
every PR" lockstep per PR #237 convention. Same drain template as
PR #286 (post-v1.4.0 cycle).

https://claude.ai/code/session_01AGU8d6pm4u2fQQ5cebg9qa

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants