docs: describe the conditional 8-K classifier and the 25-15 extractor - #284
Merged
Conversation
The SPAC section still stated the retired 1:1 item mapping (1.01 -> definitive_agreement, 1.02 -> terminated, 2.01 -> completed, 5.07 -> vote) and ended "Still deferred: Form 25/15 de-registration". Both are false: classification is conditional on the EX-2 exhibits, the date floor and the deal pending as of the filing, and 25-15 is implemented end to end. Rewrites that paragraph to state the real conditions, names the pre-filing event prefix as what makes replay idempotent (so the next change cannot silently reintroduce reading the derived deal set), documents the deregistration event and its post-close-completion rule, explains the sweep order dependency, and replaces the "still deferred" sentence with the `sec extractor backfill 25-15` recovery ceremony.
…j5s-claude-md-spac
sroussey
changed the base branch from
claude/keen-knuth-hxoj5s-process-exit
to
main
August 14, 2026 17:23
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #283 (which is stacked on #282, on #281). Merge order: #281 → #282 → #283 → this. Docs land last because they describe the behaviour #281 and #282 establish.
Defect (MEDIUM) — CLAUDE.md documents the retired 1:1 item-code mapping and calls Form 25/15 deferred
The SPAC consolidated-report section still stated the mapping as deterministic and 1:1:
and ended:
Both are false. Classification is conditional on IPO status, on the EX-2 exhibits and on the pending deal (with
material_agreement/eight_kas the non-lifecycle outcomes), and Form 25 / 25-NSE / Form 15 are implemented end to end:25-15is registered inEXTRACTOR_IDS,processDeregistrationis wired intoProcessAccessionDocFormTask, andderegistrationDescriptorgives it a backfill.The trust paragraph immediately below was updated in the same batch, so the omission reads as intentional rather than as an oversight — which makes it more likely to be trusted.
Concrete failure
Someone reading CLAUDE.md to understand why a merger 8-K produced no deal is told the mapping is unconditional, so the EX-2 requirement and the date floor are invisible; someone looking for de-registration handling is told it does not exist and does not find
sec extractor backfill 25-15, which is the recovery ceremony for the exact gap #282 describes.Approach
Rewrites
CLAUDE.mdaround the milestone paragraph to state:2.01unconditional;1.01needs a merger-shaped EX-2 and an event not dated before the floor;1.02needs a deal pending as of that filing or merger-shaped exhibits;5.07needs the pending deal to have a DA or proxy date.ipo_datefalling back toregistration_date, and why an unknown floor does not demote —ipo_dateis written only from a 424B1/424B4 whose SGML header codes SIC 6770, so a row minted by the S-1 AI content classifier legitimately has none.pendingDealBefore), never from the currently derived deal set — one paragraph naming this as what makes replay idempotent, and naming the exact mechanism by which reading the derived set corrupts the log (recordDealMilestonesreplaces before appending). This exists so the next change cannot silently reintroduce the CRITICAL in fix(spac): classify 8-K items from the pre-filing event prefix #281.25-15, writing aderegistrationevent, and the rule that a deregistration ordered at or before a completion is post-close housekeeping that does not fail the deal — with the report-date-vs-filing-date reason.sortFormsForSweepis what givessec update formsan explicit registration → prospectus → 8-K → proxies → 25/15 order.sec extractor backfill 25-15(no--force— itsfilterTodoalready selects known-SPAC Form 25/15 filings with no deregistration event).sec extractor backfill 25-15is also added to the SPAC command block.Tests / risk / migration
None — documentation only.
npx prettier --check CLAUDE.mdpasses.🤖 Generated with Claude Code
Generated by Claude Code