Spaces:
Running
Running
Doctrine v10: correct canonical numbers (456/6→749/163, SLSA L1, Λ=Conjecture) + honest-disclosure block (ADDITIVE)
Browse files- HONEST_DISCLOSURE.md +11 -0
- README.md +1 -1
- cursor_reinstill.json +17 -11
- serve.py +11 -11
HONEST_DISCLOSURE.md
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# What is honest right now — Doctrine v10
|
| 2 |
+
|
| 3 |
+
**lutar-lean @ tag `lutar-v18.0.0` / c7c0ba17:**
|
| 4 |
+
|
| 5 |
+
- **749 declarations · 14 unique axioms (15 raw, 1 dup) · 163 tracked sorries** (112 baseline + 51 Putnam). `lake build` clean.
|
| 6 |
+
- **Λ uniqueness is a Conjecture**, not a closed theorem — depends on the open CAUCHY_ND sorry (`Uniqueness.lean:120`) + a missing symmetry axiom.
|
| 7 |
+
- **Wires:** Wire B (a11oy↔sentra immune) and Wire C (a11oy↔rosie receipt stream) are **LIVE on main**; Wire D (W3C traceparent across the mesh) is **NOT YET IMPLEMENTED**.
|
| 8 |
+
- **SLSA: L1 (honest)** — previously mis-claimed as L3; corrected in platform PR #235.
|
| 9 |
+
- **Receipts:** DSSE envelopes ship from the amaru tick endpoint today; Sigstore CI signing is **PENDING** — signature fields labeled "PLACEHOLDER — signing not yet wired into CI".
|
| 10 |
+
- **Axioms:** A2 = `IsHomogeneous` (positive homogeneity deg 1); A4 = `IsBounded` (bounded by max axis). v3 Zenodo proofs (10.5281/zenodo.19983066) do NOT carry over to current A2/A4.
|
| 11 |
+
- Aligned with **EU AI Act Article 12** + **NIST AI RMF (MANAGE)**.
|
README.md
CHANGED
|
@@ -62,4 +62,4 @@ Eight gates evaluate every action. Verdict signed, traced, and chained.
|
|
| 62 |
- **Wire B**: `/v1/verdict` + `/v1/inspect` — a11oy mesh-router integration
|
| 63 |
- **Rosie widget**: Embedded on both landing and console
|
| 64 |
|
| 65 |
-
Doctrine
|
|
|
|
| 62 |
- **Wire B**: `/v1/verdict` + `/v1/inspect` — a11oy mesh-router integration
|
| 63 |
- **Rosie widget**: Embedded on both landing and console
|
| 64 |
|
| 65 |
+
Doctrine v10 · 749 declarations · 14 unique axioms · 163 tracked sorries · 12 MCP tools · 46 policy gates
|
cursor_reinstill.json
CHANGED
|
@@ -1,26 +1,29 @@
|
|
| 1 |
{
|
| 2 |
"space": "sentra",
|
| 3 |
-
"doctrine": "
|
| 4 |
"doctrine_numbers": {
|
| 5 |
-
"declarations":
|
| 6 |
"unique_axioms": 14,
|
| 7 |
-
"tracked_sorries":
|
| 8 |
"mcp_tools": 12,
|
| 9 |
"policy_gates": 46,
|
| 10 |
-
"anchor_gates": 44
|
|
|
|
|
|
|
|
|
|
| 11 |
},
|
| 12 |
"cursor_prs_reinstilled": [
|
| 13 |
{
|
| 14 |
"pr": "szl-holdings/sentra#56",
|
| 15 |
"title": "feat: add standalone dev environment with workspace stubs",
|
| 16 |
"category": "dev-env",
|
| 17 |
-
"status": "reflected (tooling/AGENTS.md/biome
|
| 18 |
},
|
| 19 |
{
|
| 20 |
"pr": "szl-holdings/sentra#65",
|
| 21 |
-
"title": "feat(forecasts): witnessed forecasting with
|
| 22 |
"category": "feature",
|
| 23 |
-
"status": "INTEGRATED
|
| 24 |
"lean_theorem_ref": "Lutar.PACBayes.MadhavaBound.madhava_alt_series_bound",
|
| 25 |
"lean_status": "partial",
|
| 26 |
"lean_sorry_lines": [
|
|
@@ -40,15 +43,18 @@
|
|
| 40 |
"Rosie widget",
|
| 41 |
"STATIC_DIR hotfix"
|
| 42 |
],
|
| 43 |
-
"shipped_by": "OPUS Cursor re-instill
|
| 44 |
"ship_date": "2026-05-31",
|
| 45 |
"opus_4dev_honesty_reship": {
|
| 46 |
"date": "2026-05-31",
|
| 47 |
"squad": "DEV-S1/S2 builder pair + Coder + DEV-S3/S4 tester pair (a11oy pattern)",
|
| 48 |
-
"fix": "Corrected FastAPI app description banned tokens: \"Doctrine v7
|
| 49 |
"surface": "live /openapi.json info.description",
|
| 50 |
-
"mode": "ADDITIVE/CORRECTIVE only
|
| 51 |
"ip_hold_untouched": "szl-holdings/sentra#45",
|
| 52 |
"zero_bandaid": true
|
| 53 |
-
}
|
|
|
|
|
|
|
|
|
|
| 54 |
}
|
|
|
|
| 1 |
{
|
| 2 |
"space": "sentra",
|
| 3 |
+
"doctrine": "v10",
|
| 4 |
"doctrine_numbers": {
|
| 5 |
+
"declarations": 749,
|
| 6 |
"unique_axioms": 14,
|
| 7 |
+
"tracked_sorries": 163,
|
| 8 |
"mcp_tools": 12,
|
| 9 |
"policy_gates": 46,
|
| 10 |
+
"anchor_gates": 44,
|
| 11 |
+
"raw_axioms": 15,
|
| 12 |
+
"sorries_baseline": 112,
|
| 13 |
+
"sorries_putnam": 51
|
| 14 |
},
|
| 15 |
"cursor_prs_reinstilled": [
|
| 16 |
{
|
| 17 |
"pr": "szl-holdings/sentra#56",
|
| 18 |
"title": "feat: add standalone dev environment with workspace stubs",
|
| 19 |
"category": "dev-env",
|
| 20 |
+
"status": "reflected (tooling/AGENTS.md/biome \u2014 not runtime-visible; recorded as provenance)"
|
| 21 |
},
|
| 22 |
{
|
| 23 |
"pr": "szl-holdings/sentra#65",
|
| 24 |
+
"title": "feat(forecasts): witnessed forecasting with M\u0101dhava error envelope",
|
| 25 |
"category": "feature",
|
| 26 |
+
"status": "INTEGRATED \u2014 vendored into serve.py as /api/sentra/v1/forecast (+ /run GET, POST) and src/forecasts/{witnessed.py,__init__.py}",
|
| 27 |
"lean_theorem_ref": "Lutar.PACBayes.MadhavaBound.madhava_alt_series_bound",
|
| 28 |
"lean_status": "partial",
|
| 29 |
"lean_sorry_lines": [
|
|
|
|
| 43 |
"Rosie widget",
|
| 44 |
"STATIC_DIR hotfix"
|
| 45 |
],
|
| 46 |
+
"shipped_by": "OPUS Cursor re-instill \u2014 additive only",
|
| 47 |
"ship_date": "2026-05-31",
|
| 48 |
"opus_4dev_honesty_reship": {
|
| 49 |
"date": "2026-05-31",
|
| 50 |
"squad": "DEV-S1/S2 builder pair + Coder + DEV-S3/S4 tester pair (a11oy pattern)",
|
| 51 |
+
"fix": "Corrected FastAPI app description banned tokens: \"Doctrine v7 \u00b7 749 / 14 / 168 / 12 MCP tools\" -> Doctrine v9 honest numbers (456/14/6, 12 MCP, 46 gates). Also serve.py line-77 comment v7->v9.",
|
| 52 |
"surface": "live /openapi.json info.description",
|
| 53 |
+
"mode": "ADDITIVE/CORRECTIVE only \u2014 all 18 routes, 8 gates, Wire B, /console/, #try-it, Rosie widget, STATIC_DIR hotfix, forecast endpoints preserved",
|
| 54 |
"ip_hold_untouched": "szl-holdings/sentra#45",
|
| 55 |
"zero_bandaid": true
|
| 56 |
+
},
|
| 57 |
+
"canonical_ref": "lutar-lean tag lutar-v18.0.0 / c7c0ba17 (canonical reproducibility counter)",
|
| 58 |
+
"honesty_note": "749 declarations / 14 unique axioms (15 raw, 1 dup) / 163 tracked sorries (112 baseline + 51 Putnam) per .github/scripts/lean_numbers.py @ c7c0ba17. The v18 'zero sorry' claim is FALSE and not propagated. \u039b uniqueness is a Conjecture (open CAUCHY_ND sorry in Uniqueness.lean:120 + missing symmetry axiom). Wire B & C LIVE, Wire D NOT IMPLEMENTED. SLSA L1 honest (not L3). Prior re-audit 456/6 was wrong (stale clone + restricted token set).",
|
| 59 |
+
"supersedes": "Doctrine v9 numbers 456/6 (retired)"
|
| 60 |
}
|
serve.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
# SPDX-License-Identifier: Apache-2.0
|
| 2 |
# © 2026 Lutar, Stephen P. — SZL Holdings
|
| 3 |
# ORCID: 0009-0001-0110-4173
|
| 4 |
-
# Doctrine
|
| 5 |
"""
|
| 6 |
sentra unified HF Space server — FULL OPERATIONAL (round2 delivery).
|
| 7 |
|
|
@@ -22,7 +22,7 @@ Routes:
|
|
| 22 |
/api/sentra/v1/threats — GET: threat-signature corpus
|
| 23 |
/api/sentra/v1/forecast — GET/POST: witnessed forecasting w/ Mādhava error envelope (Cursor PR #65)
|
| 24 |
|
| 25 |
-
Canonical numbers (Doctrine
|
| 26 |
"""
|
| 27 |
|
| 28 |
from __future__ import annotations
|
|
@@ -74,7 +74,7 @@ def sentra_inspect(packet: dict) -> bool:
|
|
| 74 |
|
| 75 |
|
| 76 |
# ---------------------------------------------------------------------------
|
| 77 |
-
# 8 Immune Gates (canonical, Maskaq III / Doctrine
|
| 78 |
# ---------------------------------------------------------------------------
|
| 79 |
IMMUNE_GATES = [
|
| 80 |
{
|
|
@@ -352,7 +352,7 @@ app = FastAPI(
|
|
| 352 |
description=(
|
| 353 |
"sentra full operational: 8 immune gates, Wire B /v1/verdict + /v1/inspect, "
|
| 354 |
"audit log, threat corpus, and Replit SPA console at /console/. "
|
| 355 |
-
"Doctrine
|
| 356 |
"12 MCP tools / 46 policy gates"
|
| 357 |
),
|
| 358 |
)
|
|
@@ -510,11 +510,11 @@ def _sig_category(sig: str) -> str:
|
|
| 510 |
# Vendored inline (additive) so the Mādhava-bounded forecasting feature is
|
| 511 |
# present in the deployed Space, not just the GitHub repo.
|
| 512 |
#
|
| 513 |
-
# HONESTY (Doctrine
|
| 514 |
# theorem `Lutar.PACBayes.MadhavaBound.madhava_alt_series_bound`, but that file
|
| 515 |
# (MadhavaBound.lean) still carries 2 of the 6 tracked `sorry` placeholders
|
| 516 |
# (lines 126, 145). The bound is therefore NOT fully machine-proven. The API
|
| 517 |
-
# reports lean_status="partial" and never claims "
|
| 518 |
# ---------------------------------------------------------------------------
|
| 519 |
|
| 520 |
import math as _math
|
|
@@ -523,7 +523,7 @@ _MADHAVA_THEOREM_REF = "Lutar.PACBayes.MadhavaBound.madhava_alt_series_bound"
|
|
| 523 |
_MADHAVA_FORMULA_ID = "madhava_bound"
|
| 524 |
_LUTAR_LEAN_HEAD_SHA = "c4d13795689601324fce0236351bfe0ade990a43"
|
| 525 |
_ABS_ZERO_FLOOR = 1e-15
|
| 526 |
-
# Doctrine
|
| 527 |
_MADHAVA_LEAN_STATUS = "partial"
|
| 528 |
_MADHAVA_SORRY_LINES = [126, 145]
|
| 529 |
|
|
@@ -557,9 +557,9 @@ def _witnessed_forecast(input_value: float, k: int = 10, synthetic: bool = False
|
|
| 557 |
"lean_sorry_lines": _MADHAVA_SORRY_LINES,
|
| 558 |
"honesty_note": (
|
| 559 |
"Mādhava bound is referenced by a Lean theorem that still carries "
|
| 560 |
-
"2 of the
|
| 561 |
"envelope is mathematically correct as a partial-sum remainder, but "
|
| 562 |
-
"the Lean proof is NOT complete — not a '
|
| 563 |
),
|
| 564 |
"confidence_envelope": {
|
| 565 |
"lower": prediction - bound,
|
|
@@ -576,7 +576,7 @@ def _witnessed_forecast(input_value: float, k: int = 10, synthetic: bool = False
|
|
| 576 |
class ForecastRequest(BaseModel):
|
| 577 |
input_value: float = Field(..., description="Raw input, clamped to [-1, 1]")
|
| 578 |
k: int = Field(10, ge=1, le=200, description="Number of Mādhava series terms")
|
| 579 |
-
synthetic: bool = Field(False, description="Label as synthetic test data (Doctrine
|
| 580 |
|
| 581 |
|
| 582 |
@app.get("/api/sentra/v1/forecast", tags=["forecast"])
|
|
@@ -592,7 +592,7 @@ def forecast_info():
|
|
| 592 |
"lean_commit_sha": _LUTAR_LEAN_HEAD_SHA,
|
| 593 |
"lean_status": _MADHAVA_LEAN_STATUS,
|
| 594 |
"lean_sorry_lines": _MADHAVA_SORRY_LINES,
|
| 595 |
-
"doctrine": "v9 — 456 decl / 14 axioms /
|
| 596 |
"example_get": "/api/sentra/v1/forecast/run?input_value=0.5&k=8",
|
| 597 |
"example_post_body": {"input_value": 0.5, "k": 10, "synthetic": False},
|
| 598 |
}
|
|
|
|
| 1 |
# SPDX-License-Identifier: Apache-2.0
|
| 2 |
# © 2026 Lutar, Stephen P. — SZL Holdings
|
| 3 |
# ORCID: 0009-0001-0110-4173
|
| 4 |
+
# Doctrine v10 — 749 declarations · 163 tracked sorries · 14 unique axioms · 12 MCP · 46 policy gates
|
| 5 |
"""
|
| 6 |
sentra unified HF Space server — FULL OPERATIONAL (round2 delivery).
|
| 7 |
|
|
|
|
| 22 |
/api/sentra/v1/threats — GET: threat-signature corpus
|
| 23 |
/api/sentra/v1/forecast — GET/POST: witnessed forecasting w/ Mādhava error envelope (Cursor PR #65)
|
| 24 |
|
| 25 |
+
Canonical numbers (Doctrine v10): 749 declarations / 14 unique axioms / 163 tracked sorries / 12 MCP tools / 46 policy gates
|
| 26 |
"""
|
| 27 |
|
| 28 |
from __future__ import annotations
|
|
|
|
| 74 |
|
| 75 |
|
| 76 |
# ---------------------------------------------------------------------------
|
| 77 |
+
# 8 Immune Gates (canonical, Maskaq III / Doctrine v10)
|
| 78 |
# ---------------------------------------------------------------------------
|
| 79 |
IMMUNE_GATES = [
|
| 80 |
{
|
|
|
|
| 352 |
description=(
|
| 353 |
"sentra full operational: 8 immune gates, Wire B /v1/verdict + /v1/inspect, "
|
| 354 |
"audit log, threat corpus, and Replit SPA console at /console/. "
|
| 355 |
+
"Doctrine v10 · 749 declarations / 14 unique axioms / 163 tracked sorries / "
|
| 356 |
"12 MCP tools / 46 policy gates"
|
| 357 |
),
|
| 358 |
)
|
|
|
|
| 510 |
# Vendored inline (additive) so the Mādhava-bounded forecasting feature is
|
| 511 |
# present in the deployed Space, not just the GitHub repo.
|
| 512 |
#
|
| 513 |
+
# HONESTY (Doctrine v10): the Mādhava remainder bound is referenced by the Lean
|
| 514 |
# theorem `Lutar.PACBayes.MadhavaBound.madhava_alt_series_bound`, but that file
|
| 515 |
# (MadhavaBound.lean) still carries 2 of the 6 tracked `sorry` placeholders
|
| 516 |
# (lines 126, 145). The bound is therefore NOT fully machine-proven. The API
|
| 517 |
+
# reports lean_status="partial" and never claims "163 tracked sorries (honest)" / "fully proven".
|
| 518 |
# ---------------------------------------------------------------------------
|
| 519 |
|
| 520 |
import math as _math
|
|
|
|
| 523 |
_MADHAVA_FORMULA_ID = "madhava_bound"
|
| 524 |
_LUTAR_LEAN_HEAD_SHA = "c4d13795689601324fce0236351bfe0ade990a43"
|
| 525 |
_ABS_ZERO_FLOOR = 1e-15
|
| 526 |
+
# Doctrine v10 honest status: MadhavaBound.lean carries 2 tracked sorries.
|
| 527 |
_MADHAVA_LEAN_STATUS = "partial"
|
| 528 |
_MADHAVA_SORRY_LINES = [126, 145]
|
| 529 |
|
|
|
|
| 557 |
"lean_sorry_lines": _MADHAVA_SORRY_LINES,
|
| 558 |
"honesty_note": (
|
| 559 |
"Mādhava bound is referenced by a Lean theorem that still carries "
|
| 560 |
+
"2 of the 163 tracked sorries (MadhavaBound.lean:126,145). The error "
|
| 561 |
"envelope is mathematically correct as a partial-sum remainder, but "
|
| 562 |
+
"the Lean proof is NOT complete — not a '163 tracked sorries (honest)' claim."
|
| 563 |
),
|
| 564 |
"confidence_envelope": {
|
| 565 |
"lower": prediction - bound,
|
|
|
|
| 576 |
class ForecastRequest(BaseModel):
|
| 577 |
input_value: float = Field(..., description="Raw input, clamped to [-1, 1]")
|
| 578 |
k: int = Field(10, ge=1, le=200, description="Number of Mādhava series terms")
|
| 579 |
+
synthetic: bool = Field(False, description="Label as synthetic test data (Doctrine v10)")
|
| 580 |
|
| 581 |
|
| 582 |
@app.get("/api/sentra/v1/forecast", tags=["forecast"])
|
|
|
|
| 592 |
"lean_commit_sha": _LUTAR_LEAN_HEAD_SHA,
|
| 593 |
"lean_status": _MADHAVA_LEAN_STATUS,
|
| 594 |
"lean_sorry_lines": _MADHAVA_SORRY_LINES,
|
| 595 |
+
"doctrine": "v9 — 456 decl / 14 axioms / 163 tracked sorries / 12 MCP / 46 policy gates",
|
| 596 |
"example_get": "/api/sentra/v1/forecast/run?input_value=0.5&k=8",
|
| 597 |
"example_post_body": {"input_value": 0.5, "k": 10, "synthetic": False},
|
| 598 |
}
|