Skip to content

docs(experiments): correct the equities assessment after independent review - #213

Merged
eaitbrahim merged 2 commits into
mainfrom
research/equities-feasibility-corrections
Aug 9, 2026
Merged

docs(experiments): correct the equities assessment after independent review#213
eaitbrahim merged 2 commits into
mainfrom
research/equities-feasibility-corrections

Conversation

@eaitbrahim

Copy link
Copy Markdown
Contributor

Corrections to the equities decision record merged in #211, from an independent review that landed after the merge. The verdict is unchanged — keel still cannot add US equities, and the binding gate is still §71.6's screening capability. Every change here is about accuracy of evidence and internal consistency.

Feasibility only. No code changed, no adapter added, no dependency introduced.

The two that mattered

Rails 18 and 19 were inverted in the verdict table. Verified against keel/execution/guards.py: rail 18 is what actually rejects Coinbase equities — quote_currency_of returns None on a 64-char hash — and its own comment calls it "an INSTRUMENT-CLASS gate wearing a currency's clothes." Rail 19 is a grammar check that a sane adapter's AAPL-USD would pass. §5/E2 had this right; the verdict table was the sole outlier.

"Two independent refusals, each sufficient on its own" was overstated. It contradicted §7's own "the whole verdict rests on this single step," and refusal 2 is Coinbase-specific — the document concedes it "would be answered by choosing Alpaca." Only refusal 1 answers the question as posed. The verdict stands on one leg, and now says so.

Evidence-integrity corrections

  • F1 — attribution, not fabrication. The decisive 2026-08-09 market-data measurements were attributed to the committed probe script, which contains no recent_trading_days, equity_trading_flags, or per-product price fields. They came from ad-hoc queries written for the fact-check. The numbers are not in doubt; their reproducibility was overclaimed. Now marked ⚠️ ad-hoc, not re-runnable — the one class of evidence a future reader cannot reproduce from the tree.
  • Two withdrawals were wrong and are restored: equit occurs 150 times in the spec, and named equity error codes exist (INVALID_EQUITY_TRADING_SESSION, PREVIEW_INVALID_EQUITY_TRADING_SESSION). Both were greppable the whole time.
  • A retraction retracted something true. EquityTradingSession is the real schema name; only its five value spellings were invented. Added as a fourth research-integrity rule.
  • 19,188 ids hit the script's 20-page cap (probe.py:231) — termination was never established, only that the same walk now returns 47% more ids with zero drift.
  • "All 1000 products" is a first-page ~5% sample of a 19,188-id universe. Qualified at all nine sites.

AAOIFI §3 corrections — these change the implementation spec

  • Clause 3/19 is a regime selector, not a fourth screening ratio. Falling below 30% tangible assets does not forbid the share; it means the sarf and debt-trading rules must be observed. The Appendix says so explicitly. It was listed as a peer ratio and specced as an attestation field.
  • Clauses 3/17, 3/18 and 3/20 were omitted entirely — a screen built to §3's spec would have shipped without them, including 3/18's bar on shares of a corporation whose assets are entirely debts.
  • The "SS 21 contradicts itself on the 3/19 floor" claim was overstated: the footnote's numerator is "tangible and cash assets" against 3/19's "assets, benefits and rights" with cash in the denominator. Different measures. The quotation had stopped just before the words that show it.

External-source corrections

  • Alpaca is not market-orders-only for notional orders — limit, stop, stop-limit and extended hours since 2024-02. This sat inside the sentence justifying the Alpaca recommendation. The real constraints are narrower: TIF must be day, 2-decimal notional cap, cannot be replaced.
  • The Schwab citation described a page containing none of what it was cited fordeveloper.schwab.com/terms-and-conditions is a JS shell rendering no text to a fetcher. The real terms are on contentdelivery.schwab.com, 16,455 bytes, last updated 2023-02-14. The refutation survives (zero AI/ML matches), and the terms do carry an automation clause — robots and spiders, governing the website, not the API. Failing "opened at source" in the section that codifies it.
  • DJIM's two retirement dates could not be confirmed at source and are now hedged to "during 2023" with the S&P DJI announcement of 2023-08-04; the 12→24-month framing was wrong causally, since DJIM moved long before 2023 and Ayub's 2007 text simply predates it.
  • Schwab's "two business days" governs API product access, not app promotion; the SEO cluster is six pages, not five.

Reviewer note

create_order on an equity has still never been called, and §71.6 applied to real US shares remains an inference — both labelled prominently, in five and four places respectively. F13 was dropped as verified-correct style only; the "not read at source" hedge on the FINRA identifiers was deliberately kept.

🤖 Generated with Claude Code

eaitbrahim and others added 2 commits August 9, 2026 10:14
…review

Applies 19 findings from an independent review of the merged record. The
verdict is unchanged: still NO, still on screening capability. Every change
is about accuracy of evidence and internal consistency.

Correction classes:

- Attribution. The 2026-08-09 re-run was not entirely the committed probe;
  several measurements came from ad-hoc read-only queries written for the
  fact-check and never committed. Those findings are now marked "ad-hoc, not
  re-runnable", and the caveat no longer claims the re-run removed the
  document's weakest point.

- Inverted rails. The verdict table had rails 18 and 19 the wrong way round.
  Rail 18 is what actually rejects a Coinbase equity id (quote_currency_of
  returns None on a 64-char hash); rail 19 is a grammar check that AAPL-USD
  passes. Section 5/E2 was already right and now the table agrees with it.

- Overstated refusals. "Two independent refusals, each sufficient on its own"
  contradicted two later passages saying the whole verdict rests on the
  charter gate. Refusal 2 is Coinbase-specific and narrows the how, not the
  whether.

- Wrong withdrawals restored. The spec's "equity" occurrence count and its
  named equity-specific error codes were greppable in the same spec file the
  rest of section 1b was read from. The EquityTradingSession retraction also
  over-reached: the type name was correct, only the five value spellings were
  invented. The research-integrity section gains a fourth rule about the
  scope of a retraction.

- Unestablished termination. The 19,188-id cursor walk hit the script's
  20-page cap, so the universe is not established as terminating there.

- Sampling. "All 1000 products" is the first page, roughly 5% of the
  measured universe.

- Sourcing hedges. The DJIM screen-retirement dates could not be confirmed at
  source and are now given as "during 2023" against the one dated primary
  artifact. The index comparison table no longer claims all methodologies
  were read at source. MSCI's averaging window is hedged rather than
  asserted. Two occurrence-count claims with no citable source are downgraded
  to "docs silent".

- SS 21 substance. Clause 3/19 is a regime selector, not a fourth admission
  ratio. The 3/19 "self-contradiction" is a discrepancy between two
  differently-measured floors. Clauses 3/17, 3/18 and 3/20 were omitted
  entirely and are now recorded. The recurring-cost argument is stated once,
  correctly, and its circular cross-reference is gone.

- Broker facts. Alpaca has supported fractional limit/stop orders and
  extended hours since 2024-02; the real notional constraints are different.
  The Schwab terms citation pointed at a JS shell that renders no text; the
  refutation survives against the real document. Schwab's "two business days"
  line governs API access requests, not app approval. The mylinedchart
  cluster is six pages, not five.

- Arithmetic. 65-130 engineer-days is three to six months, and 50-100 of
  those days are equity-specific.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Follow-ups the corrections pass flagged rather than improvised:

- "not the same instrument both times" read as though a different
  security was probed; it is about instrumentation. Reworded.
- Six remaining "all 1000 products" / "998 of 1000" claims stated a
  first-page sample as if exhaustive. All now carry the ~5%-of-19,188
  qualifier the same finding added to the one site in section 1a.
- Section 6's "a standards read nobody has done" contradicted section 3,
  which reads and quotes SS 21. The undone step is authoring the KB
  entry, not the read.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@eaitbrahim
eaitbrahim merged commit a9bba8d into main Aug 9, 2026
1 check passed
@eaitbrahim
eaitbrahim deleted the research/equities-feasibility-corrections branch August 9, 2026 20:23
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.

1 participant