Skip to content

Commit c55fbde

Browse files
eaitbrahimclaude
andauthored
fix(content): withdraw the break-even claim, correct the slippage range, sync to v0.13.3 (#137, #138, #139) (#140)
* feat(content): sync the guides, the manifest and the comparison to v0.13.3 (#139) Working-tree copy brought up to what the engine actually ships. - Get Started: seven console views become eight, with Orders -- the ledger of every order placed, each carrying the venue's own bid and ask at submission -- and a new step for `keel scope attest --trading`, the rail-20 gate that ships closed. - The comparison matrix reads 20 rails rather than 18, in all three locales: `guards.py` gained rail 20 (trade scope, #233) and rail 21 (base balance, #667), numbered 1-14 and 16-21 because rail 15 was retired and its number never reused. - Engine-docs manifest: adds `docs/architecture.md` and `docs/decisions/0004-monetisation-not-now.md`. - Regenerated web-console screenshots. * fix(content): withdraw the break-even claim, and correct the slippage range (#137, #138) The front page's honest-result block carried three figures that no longer describe what keel measures, and one of them its own cost model now falsifies. **The matrices were superseded.** "0 of 90 ... 0 of 82" covered THREE rule families on a flat-5bp engine. Five signal families ship at v0.13.3, and this site's own rendered changelog for that release already says 0 of 90 -> 0 of 114 -> 0 of 138 -- so the front page was understating a measurement published two clicks away. Now 0 of 120 at shipped defaults, 0 of 138 across every matrix run. **The break-even claim is withdrawn, explicitly, on the page.** We said the rules sit indistinguishably at break-even inside the venue's fee-free allowance -- a 14.9% win rate against a 14.88% break-even. That 14.88% was computed at psi=5bp, and the 09-01 per-product restatement measured that 0 of 24 assets reach that floor: the range is 1.1x to 36.8x, median near 10x. The source note's OWN sensitivity row already fails the claim at psi=10bp, a fifth of the measured median. So "at best they touch break-even inside the fee-free allowance" is not true, and neither is "the allowance rail is the profitability boundary" -- it is the boundary between decisively negative and clearly negative. It is retracted in the copy rather than quietly edited, because on this site the withdrawal is the credibility, not the number. **Fees are no longer described as the whole cost.** The block said "the taker fee is the entire result". Since #334/#335 that is not the project's own position: the cost-model error was worth 0.090 of median profit factor, larger than the best genuine improvement any rule change has produced. A third link -- "How execution is priced" -> the 09-01 restatement -- puts the new cost claims one click from the record that measured them. Every figure the copy now states is sourced from a document that is IN v0.13.3, so a reader can check it at the tag the site pins; both links resolve 200. Also fixes, on the Features page (#138): - The slippage range read "from 5 to 50 basis points". `SLIPPAGE_CAP_PCT` has been 0.01838 -- 183.8bp -- since #523, which re-derived the cap as the corpus tail; the round 50bp was the defect that change removed. Understating the ceiling by 3.7x on the page that promises "if a claim ever drifts from the code, the link is how you catch us". - The same sentence read as though the whole `keel simulate` pass is liquidity-priced. At v0.13.3 only the edge table is; the account pass and the DCA benchmark -- one of which that sentence names -- stay flat, as `simulate.py` says beside its own numbers. Now stated. - The Arabic meta description still said 18 rails while the Arabic body beside it, and every EN/FR string, said twenty. All copy changes are EN/AR/FR. This commit also carries the rails 18 -> 20 pass and the trade-scope, order-ledger and research-front-door sections for #139, because those edits were already in the working tree in the same three files and could not be split out without reconstructing them. `npm run check`: 0 errors. Build: 73 pages. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EXz13qp1UM3pBa6BqsRqvC --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent 5abc242 commit c55fbde

13 files changed

Lines changed: 167 additions & 65 deletions

File tree

engine-docs.manifest.json

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,15 @@
2121
"section": "reference",
2222
"fr": "Le raisonnement Shariah que keel encode, règle par règle, chacun avec sa source dans le dépôt — publié pour être audité et contesté."
2323
},
24+
{
25+
"path": "docs/architecture.md",
26+
"slug": "architecture",
27+
"title": "Software Architecture Record",
28+
"en": "The system as verified, not as imagined — what keel is, the packages it ships in, the choices holding it up, and, issue by issue, what is not built yet.",
29+
"ar": "النظامُ كما جرى التحقّقُ منه، لا كما يُتصوَّر — ما هو كيل، والحزمُ التي يُشحن بها، والقراراتُ الحاملةُ له، وما لم يُبْنَ بعدُ، مسألةً مسألةً.",
30+
"fr": "Le système tel qu'il est vérifié, non tel qu'on l'imagine — ce qu'est keel, les paquets qu'il livre, les choix qui le portent, et, ticket par ticket, ce qui n'est pas encore construit.",
31+
"section": "reference"
32+
},
2433
{
2534
"path": "docs/decisions/0001-desktop-update-path.md",
2635
"slug": "decision-0001-desktop-update-path",
@@ -48,6 +57,15 @@
4857
"section": "decisions",
4958
"fr": "L'enquête mesure-d'abord de la couche commands — le rôle de chaque module, et pourquoi « plus grande que le moteur » s'est dissous avant même que l'enquête ne commence."
5059
},
60+
{
61+
"path": "docs/decisions/0004-monetisation-not-now.md",
62+
"slug": "decision-0004-monetisation-not-now",
63+
"title": "Decision 0004: monetisation is not now",
64+
"en": "Why keel does not monetise yet, and why affiliate links are a permanent no rather than a “not yet”: referral revenue would be a direct stake in the same fee schedule keel's credibility depends on assessing without one.",
65+
"ar": "لماذا لا يُحصِّل كيل مالًا الآن، ولماذا روابطُ الإحالة رفضٌ دائمٌ لا «ليس بعد»: فعائدُ الإحالة حصّةٌ مباشرةٌ في جدول الرسوم نفسِه الذي تقوم مصداقيةُ كيل على تقييمه بلا مصلحةٍ فيه.",
66+
"fr": "Pourquoi keel ne se monétise pas maintenant, et pourquoi les liens d'affiliation sont un non définitif plutôt qu'un « pas encore » : un revenu de parrainage serait un intérêt direct dans le barème de frais que la crédibilité de keel repose sur sa capacité à évaluer sans intérêt.",
67+
"section": "decisions"
68+
},
5169
{
5270
"path": "docs/desktop-install.md",
5371
"slug": "desktop-install",
@@ -84,6 +102,15 @@
84102
"section": "reference",
85103
"fr": "keel mcp : les huit outils en lecture seule qu'un assistant peut appeler — doctor, capabilities, profiles, orders, veto_log, purification, trials, reports — et la clôture, en six murs, qui les garde en lecture seule."
86104
},
105+
{
106+
"path": "docs/research-toolkit.md",
107+
"slug": "research-toolkit",
108+
"title": "The research toolkit",
109+
"en": "The thirteen evidence modules keel research fronts — each with the question it answers and, to be read just as carefully, the question it refuses to answer.",
110+
"ar": "وحداتُ الأدلّةِ الثلاث عشرة التي يقف عليها أمرُ keel research — كلٌّ منها بالسؤال الذي تجيب عنه، وبالسؤال الذي ترفض الإجابةَ عنه، وهذا الثاني يُقرأ بالعناية نفسِها.",
111+
"fr": "Les treize modules de preuve que keel research met en façade — chacun avec la question à laquelle il répond et, à lire avec autant d'attention, celle à laquelle il refuse de répondre.",
112+
"section": "research"
113+
},
87114
{
88115
"path": "docs/experiments/2026-08-13-restated-under-a-production-faithful-engine.md",
89116
"slug": "experiment-honest-result-restated",

public/get-started/webui-fetch.png

49 Bytes
Loading

public/get-started/webui-gates.png

25.3 KB
Loading
1.59 KB
Loading

public/get-started/webui-rules.png

3.05 KB
Loading

public/get-started/webui-setup.png

40.3 KB
Loading
612 Bytes
Loading

src/components/pages/HomePage.astro

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,12 @@ const honestLinks = [
7272
"docs/experiments/2026-08-13-restated-under-a-production-faithful-engine.md",
7373
),
7474
},
75+
{
76+
label: c.honest.costLabel,
77+
href: engineBlobUrl(
78+
"docs/experiments/2026-09-01-per-product-slippage-restatement.md",
79+
),
80+
},
7581
{ label: c.honest.announcementLabel, href: "https://github.com/CodeGateSoftware/keel/discussions/304" },
7682
];
7783

src/i18n/guides/content.ts

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/**
22
* Get Started guides — editorial, site-authored newbie walkthroughs (EN for
33
* now, like the engine documents themselves). Every command, page and button
4-
* below was verified against keel v0.12.2: the screenshots in
4+
* below was verified against keel v0.13.2: the screenshots in
55
* public/get-started/ were captured by scripts/render-webui-shots.mjs from a
66
* real `keel serve` console on a fresh paper working directory — the curses
77
* TUI these guides used to teach was deleted from the engine before v0.12.2
@@ -66,13 +66,13 @@ export const guides: Guide[] = [
6666
code: "keel serve",
6767
},
6868
{
69-
title: "Step 4 — Take the tour: seven views",
69+
title: "Step 4 — Take the tour: eight views",
7070
body: [
71-
"keel serve prints a URL carrying a one-time token for this run, opens your browser, and from there everything lives behind the header's seven views. Status (the page you land on) answers \"is it alive\"; Setup is the checklist of what this deployment still needs; Activity, Insights, Rules and Venues report what keel did and found; Gates lists every capability-increasing action and what gates it. The eighth header entry, Docs, links out to the documentation you are reading.",
71+
"keel serve prints a URL carrying a one-time token for this run, opens your browser, and from there everything lives behind the header's eight views. Status (the page you land on) answers \"is it alive\"; Setup is the checklist of what this deployment still needs; Activity, Insights, Rules and Venues report what keel did and found; Orders is the ledger of every order placed, each carrying the venue's own bid and ask at the moment keel submitted it; Gates lists every capability-increasing action and what gates it. The ninth header entry, Docs, links out to the documentation you are reading.",
7272
],
7373
shot: "/get-started/webui-status.png",
7474
shotCaption:
75-
"The console's Status view with the seven-view header: Status, Setup, Activity, Insights, Rules, Venues, Gates. The paper badge (top right) is the deployment's mode; the footer says it is served from this machine only.",
75+
"The console's Status view with the eight-view header: Status, Setup, Activity, Orders, Insights, Rules, Venues, Gates. The paper badge (top right) is the deployment's mode; the footer says it is served from this machine only.",
7676
},
7777
{
7878
title: "Step 5 — Read the dashboard",
@@ -205,7 +205,7 @@ export const guides: Guide[] = [
205205
],
206206
shot: "/get-started/webui-gates.png",
207207
shotCaption:
208-
"The Gates view: keel autonomy on, keel resume, keel withdrawals attest --enabled and friends — each with what it increases, and the terminal gate (a typed yes at an interactive TTY) it must pass.",
208+
"The Gates view: eight actions — keel autonomy on, keel resume, keel withdrawals attest --enabled, keel scope attest --trading and the rest — each with what it increases, and the terminal gate (a typed yes at an interactive TTY) it must pass.",
209209
},
210210
{
211211
title: "Step 2 — Screen and attest the allowlist",
@@ -230,7 +230,14 @@ export const guides: Guide[] = [
230230
code: "keel withdrawals attest --enabled",
231231
},
232232
{
233-
title: "Step 5 — Purification, honestly",
233+
title: "Step 5 — Attest the venue's trade scope (rail 20)",
234+
body: [
235+
"A credential that reads fine is not evidence it can trade: keel has watched a well-formed key pass every read and still have its first live order refused by the venue. Rail 20 closes that hole by failing closed — until a venue is attested, keel ships unable to place a live entry on it at all. keel scope attest --trading releases that veto, so it demands a typed yes at a terminal; --read-only only ever reduces capability and stays ungated. The record is bound to the credential that earned it, so a rotated key means re-attesting. Like rail 17, this is entries-only — exits are never affected, because an exit must always be able to leave.",
236+
],
237+
code: "keel scope attest --trading",
238+
},
239+
{
240+
title: "Step 6 — Purification, honestly",
234241
body: [
235242
"keel purification reports non-compliant income owed to charity (KB §65.9) from what actually ran through the engine. Account-level duties no rail can see — disabling USDC rewards on idle balances, chiefly — appear in the checklist as the venue-interest step, and keel will never show that one as done: the venue's API does not expose enrolment, and a green check that verifies nothing turns an open risk into a false assurance. It stays on the operator's checklist, in the operator runbook.",
236243
],

0 commit comments

Comments
 (0)