Skip to content

docs: move the status review to docs/presentations/, and add the paper → live section - #293

Merged
eaitbrahim merged 3 commits into
mainfrom
docs/presentations-folder
Aug 15, 2026
Merged

docs: move the status review to docs/presentations/, and add the paper → live section#293
eaitbrahim merged 3 commits into
mainfrom
docs/presentations-folder

Conversation

@eaitbrahim

@eaitbrahim eaitbrahim commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

Two commits: the file move you asked for, and a new section on the paper deployment.

1. Move

docs/reports/2026-08-16-status-review.html
  → docs/presentations/keel-status-review-2026-08-15.html

Establishes docs/presentations/ with a <title>-<date>.html convention. Recorded as a git mv, not a copy — two copies of a deck drift, and the stale one is what someone eventually presents from. Nothing in the repo referenced the old path.

The filename carries the date it was saved; the masthead inside carries 16 August, the date it's presented. That's deliberate.

2. Paper → live

The deck mentioned paper in a single clause. It now has a section, because the paper-to-live path is what decides whether a rule may ever touch real money — and its current state is a finding, not a footnote.

What paper is: separate database and config, synthetic cash ($500$550), 19 allowlisted assets against live's six, 20 attested. 22 rules on the books but only 19 load — status isn't a label, it decides whether the agent reads the rule at all, so one candidate turtle and two disabled DCA rules are inert. Zero signals, orders, positions and outcomes to date.

What it's for: candidatepaperlive, with a deterministic gate between the last two rungs — n>=100, positive expectancy, RR >= 1.5, a class win-rate floor, and a PBO result. Those floors were deliberately not relaxed together: when win rate was loosened to 0.30 for trend-following, min_trades was held at 100 because the axes are independent and only one had a justification.

Why it can't work. min_trades is per rule and per product, and does not pool. Measured daily turtle rates are 1.19–3.20 trades/year, putting n=100 31 to 84 years away. Adding assets doesn't help — a new asset is a new rule with its own ~14 trades, not a pooled 114.

What follows, said plainly: five of the seven live rules carry promoted_at = NULL. They were seeded straight to live and left there, deliberately and on the record; only the BTC dca rule and the DOGE turtle went through the normal path. So what bounds the risk is not the promotion gate, which never ran — it's the caps, the nineteen rails and the allowlist. The bypass is of the evidence gate, not the safety rails.

Verified

Parses; no stray backticks; account figures still withheld (re-grepped, zero hits).

🤖 Generated with Claude Code

eaitbrahim and others added 2 commits August 15, 2026 19:00
Establishes `docs/presentations/` with a `<title>-<date>.html` convention, at
the operator's request. The review moves there from `docs/reports/`, which had
held it only because `docs/superpowers/reports/` set the precedent for a
rendered HTML report in-tree.

Recorded as a `git mv` rather than a copy: two copies of a deck drift, and the
one in the wrong place is the one someone eventually presents from. Verified no
file in the repo referenced the old path.

The date in the filename is the date it was saved (2026-08-15). The masthead
inside carries 16 August 2026, the date it is presented. That is deliberate and
not a discrepancy to "fix" -- a deck is written the day before the room.

Content is unchanged: same 29,781 bytes, still parses, and the withheld account
figures are still withheld (re-grepped; zero hits). Only the path changed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The review mentioned paper in one clause -- "a wider universe, exists to
accumulate evidence" -- which undersold both what it is and why it matters. It
now has a section, because the paper-to-live path is the mechanism that decides
whether a rule may ever touch real money, and its current state is a finding
rather than a footnote.

WHAT PAPER ACTUALLY IS: separate database, separate config, synthetic cash
($500 start, $550 high-water mark), 19 allowlisted assets against live's six,
20 attested. 22 rules on the books but only 19 load -- status is not a label,
it decides whether the agent reads the rule at all, so the one `candidate`
turtle and the two `disabled` DCA rules are inert. Zero signals, zero orders,
zero positions, zero outcomes to date.

WHAT IT IS FOR: `candidate` -> `paper` -> `live`, with a deterministic gate
between the last two rungs. Promotion needs n>=100 trades, positive expectancy,
RR >= 1.5, a win rate over the class floor, and a PBO result. The floors were
deliberately not relaxed together: when the win-rate axis was loosened to 0.30
for trend-following, min_trades was held at 100 on the grounds that the axes are
independent and only one had a justification.

WHY IT CANNOT WORK, and this is the point of the section: min_trades is checked
per rule and per product, and it does not pool. Measured daily turtle rates are
1.19 to 3.20 trades per year, which puts n=100 between 31 and 84 years away.
Adding assets does not help -- a new asset is a new rule with its own ~14
trades, not a pooled 114. Waiting for the gate is not a slower path to the same
place; it is no path.

WHAT FOLLOWS, said plainly rather than left for a reader to discover: five of
the seven live rules carry promoted_at = NULL. They were seeded straight to
`live` and left there, deliberately and on the record. Only the BTC dca rule
and the DOGE turtle went through the normal path. So what bounds the risk is
not the promotion gate, which never ran -- it is the caps, the nineteen rails
and the allowlist, which are separate mechanisms that did. The bypass is of the
evidence gate, not the safety rails, and the section says so in those words.

Stacked on the move commit rather than branched from main, because main still
carries the file at its old path and editing it there would guarantee a
conflict with that rename.

Account figures remain withheld; re-verified.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@eaitbrahim eaitbrahim changed the title docs: move the status review to docs/presentations/, named title-date docs: move the status review to docs/presentations/, and add the paper → live section Aug 15, 2026
…venues

Two gaps a reader would have hit.

THE SHARIAH BASIS WAS UNCITED. The deck described the rails but never said what
the compliance criteria rest on, so the screen read as a curated list of
approved coins rather than a set of named juristic tests. It now carries both
tables: each criterion mapped to what it tests and its reference, and the
sources themselves.

  attestation / haram_sector / riba_yield   §28.4
  backing 'ayn vs dayn                      §65.5, §67.2
  gold & silver -> stricter bay' al-sarf    §65.5   (this is PAXG)
  instrument_wrapper, naming the CONTRACT   §71.4a
  qabd / withdrawal capability, rail 17     §65.4
  settlement, USD spot only                 rails 18/19

Sources: Jobst (IMF WP 07/117, 2007) as the original foundation; Ayub,
*Understanding Islamic Finance* (Wiley, 2007) which displaced it and derives the
prohibitions from primary texts while citing OIC Fiqh Academy and AAOIFI; four
trading-specific papers on bay' al-sarf and qabd including Najeeb (INCEIF);
Al-Jarhi/Abuzaid/Oweida's *Handbook of Islamic Finance* (2022) for 'ayn/dayn;
IIFA Resolution 237 with the SRB and IIUM material; and four academic papers on
the māl/thaman question.

The section also states the gap rather than smoothing it, because it is the
most important thing on the page: IIFA Resolution 237 carries a heading reading
"Second: Shariah Ruling" with NO RULING UNDER IT. The Academy has ruled on
electronic possession -- which is exactly why the qabd test behind rail 17 is
well-grounded -- and has expressly declined to rule on whether crypto is
Shariah-recognised property. An earlier note in the record puts it plainly:
not one compliance source addressed crypto directly, and silence is not
permission. So keel does not claim the question is settled; it enforces what is
settled and records the operator's attribution for what is not.

Worth noting only ONE criterion in the screen is waivable, and it is `history`
-- the one that is not a religious question. The code never consults the waiver
map for the others and the CLI will not accept them.

ROBINHOOD WAS MISSING FROM VENUES. Four venues have been assessed, not three,
and Robinhood's status is unlike any of the others: not refused on the
instrument (cTrader, Trade Nation), not waiting on data (equities), but BUILT
AND DELIBERATELY UNWIRED. `keel-broker-robinhood` ships translate, transport
and adapter layers behind the port with its own tests, and is unreachable from
live by design.

The blocker is a venue capability, not our code: Robinhood's market orders
accept only `asset_quantity`, with no quote-amount variant, and keel opens every
position with MarketIOCByQuote. Under the current entry model Robinhood cannot
open a position at all, and the adapter declares the capability unsupported and
raises rather than approximating it.

Account figures remain withheld; re-verified.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@eaitbrahim
eaitbrahim merged commit 52cd849 into main Aug 15, 2026
1 check passed
@eaitbrahim
eaitbrahim deleted the docs/presentations-folder branch August 15, 2026 23:25
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