docs(decisions): draft ADR 0005 — options, with the verdict line unsigned (#637) - #764
Merged
Conversation
…igned (#637) #637's sequencing is satisfied: #370 landed the equities path and #636's discovery closed with its findings recorded in #753. So the record is due, and this drafts it up to -- and deliberately not past -- the decision. THE VERDICT IS UNSIGNED, AND THAT IS THE POINT Both candidate verdicts are written out in full. Signing is striking one, keeping the other, and setting Status. Nothing else in the file needs editing. An ADR is a standing rule; this one turns on whether a cash-secured option is admissible, which is a fiqh-methodology question about gharar and the character of a fully collateralised contract. Constitution line 5 -- every attestation is human-sourced, or refused -- means no amount of documentation reading settles it, and a machine drafting the verdict would be exactly the failure that line names. The record says so in its own section rather than leaving the omission to be noticed. THREE FINDINGS DECIDE THE NEAR TERM WITHOUT REACHING THAT QUESTION Which is why option A is drafted as "not now, on operational grounds, question expressly not reached" -- so signing it commits the project to no jurisprudential position it has not taken. F7 a cash-secured put is collateralised at strike x 100, unfractionalisable: $1,800 for the cheapest plausible underlying against config.live.yaml's budget_usd: 50. About 36x the deployment's clip, so no compliant position is executable at this size whatever anyone concludes about permissibility. F5 rail 19 vetoes an OCC symbol in EVERY mode including paper, deliberately outside LIVE_STATE_RAILS -- so there is no rehearsal path, and its own comment calls spot-only "this agent's CHARTER, not an operator preference". F1 whether options approval survives max_margin_multiplier: 1 is documented nowhere, and if it does not, `verify_cash_account` stops the adapter building -- breaking the EQUITIES path that already ships. F3 is flagged as the one deserving argument rather than triage: the venue auto-exercises, liquidates within an hour of expiry when buying power is short, and reports assignment by polling only. That is a different relationship to inventory than keel has accepted anywhere. Four reopening triggers in ADR 0002's style, each a fact rather than a feeling, and 1-3 necessary together -- deployment size, F1 answered on a live account (where a "no" closes it permanently rather than provisionally), and the permissibility question answered by a human with sources. Every citation checked against this tree: adapter.py:262, guards.py:905, config.live.yaml:82, and the research document. A script asserts every relative link in the record resolves -- an ADR citing a path that moved is worse than one citing nothing, because it reads as verified. 6,424 passed / 3 skipped. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KZZxmspQXe5qJ9FAsG13s6
3 tasks
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.
Drafts #637's record. The verdict line is unsigned — signing is striking one option, keeping the other, and setting
Status. Nothing else needs editing.#637's sequencing is satisfied: #370 landed the equities path, and #636's discovery closed with its findings in #753. The record is due.
Why I didn't write the verdict
An ADR is a standing rule, and this one turns on whether a cash-secured option is admissible — gharar, the character of the premium, whether full collateralisation changes the contract. Constitution line 5 ("every attestation is human-sourced, or refused") means no amount of documentation reading settles that, and a machine drafting the verdict would be the exact failure that line names.
The record says so in its own section rather than leaving the omission to be noticed.
Three findings decide the near term without reaching that question
Which is why option A is drafted as "not now, on operational grounds, question expressly not reached" — so signing it commits the project to no jurisprudential position it hasn't taken.
strike × 100, unfractionalisable: $1,800 for the cheapest plausible underlying againstconfig.live.yaml'sbudget_usd: 50. ~36× the deployment's clip — no compliant position is executable at this size, whatever anyone concludes about permissibility.LIVE_STATE_RAILS, so there is no rehearsal path. Its own comment: "Spot-only is this agent's CHARTER, not an operator preference."max_margin_multiplier: 1is stated nowhere. If it doesn't,verify_cash_accountstops the adapter building — breaking the equities path that already ships.F3 is flagged as deserving argument rather than triage: the venue auto-exercises, liquidates within an hour of expiry when buying power is short, and reports assignment by polling only. That's a different relationship to inventory than keel has accepted anywhere.
Reopening triggers
Four, in ADR 0002's style, each a fact rather than a feeling. 1–3 are necessary together — deployment size, F1 answered on a live account (where a "no" closes it permanently, not provisionally), and the permissibility question answered by a human with sources.
Checks
Every citation verified against this tree —
adapter.py:262,guards.py:905,config.live.yaml:82, and the research document. A script asserts every relative link in the record resolves: an ADR citing a path that moved is worse than one citing nothing, because it reads as verified.6,424 passed / 3 skipped.
🤖 Generated with Claude Code
https://claude.ai/code/session_01KZZxmspQXe5qJ9FAsG13s6