feat: establish Quant OS production-80 architecture

This commit is contained in:
2026-07-30 22:59:25 +08:00
parent 919c64c679
commit 26cc814f3f
67 changed files with 7005 additions and 142 deletions
+173 -23
View File
@@ -1457,7 +1457,7 @@
<div class="masthead__brand">
<p class="eyebrow">Release control / public snapshot</p>
<h1 class="brand-title" id="page-title">Quant OS</h1>
<p class="brand-subtitle">个人 A 股研究到执行的证据审计台</p>
<p class="brand-subtitle">个人沪深 A 股研究到执行的证据审计台</p>
</div>
<div class="masthead__claim">
<div class="claim-line">
@@ -1479,15 +1479,15 @@
<div class="safety-banner" role="note" aria-label="资金安全边界">
<svg class="icon" aria-hidden="true"><use href="#icon-shield-alert"></use></svg>
<p><strong>可运行框架 ≠ 可投入资金。</strong> 本页只呈现构建时证据快照,不是实时服务健康监控,也不构成投资收益声明。</p>
<p><strong>可运行框架 ≠ 可投入资金。</strong> 本页只呈现构建时证据快照,不是实时服务健康监控,也不构成投资收益声明。<span id="market-scope-copy">当前交易执行范围仅覆盖沪深;北交所尚未接入,所有北交所委托必须 fail closed。</span></p>
<span class="snapshot-label">LIVE READY = FALSE</span>
</div>
<section class="metrics" aria-label="核心状态指标">
<div class="metric">
<span class="metric__label">Delivery score</span>
<strong class="metric__value" id="metric-score">NOT SCORED</strong>
<span class="metric__note">不把文章估分冒充系统得分</span>
<span class="metric__label">Production 80</span>
<strong class="metric__value" id="metric-score">0 / 100</strong>
<span class="metric__note">证据得分;Hard Gate 不可补偿</span>
</div>
<div class="metric">
<span class="metric__label">Gate evidence</span>
@@ -1513,9 +1513,10 @@
<a href="#layers"><span class="rail__index">01</span><span>系统分层</span></a>
<a href="#models"><span class="rail__index">02</span><span>模型边界</span></a>
<a href="#platforms"><span class="rail__index">03</span><span>平台接入</span></a>
<a href="#gates"><span class="rail__index">04</span><span>G1G10</span></a>
<a href="#bundles"><span class="rail__index">05</span><span>发布包</span></a>
<a href="#provenance"><span class="rail__index">06</span><span>证据来源</span></a>
<a href="#maturity80"><span class="rail__index">04</span><span>80 分标准</span></a>
<a href="#gates"><span class="rail__index">05</span><span>G1G10</span></a>
<a href="#bundles"><span class="rail__index">06</span><span>发布包</span></a>
<a href="#provenance"><span class="rail__index">07</span><span>证据来源</span></a>
</nav>
<main class="main-content" id="main-content" tabindex="-1">
@@ -1626,9 +1627,48 @@
</div>
</section>
<section class="audit-section" id="gates" aria-labelledby="gates-title">
<section class="audit-section" id="maturity80" aria-labelledby="maturity80-title">
<div class="section-header">
<span class="section-code">SEC.04</span>
<div>
<h2 class="section-title" id="maturity80-title">Production 80 · 受限生产标准</h2>
<p class="section-intro">80 分以 Baseline 60 全门通过为前置,并要求真实 QMT、60 个交易日 shadow、10 个交易日受限资金 canary、持续对账、恢复演练和券商程序化交易确认。</p>
</div>
</div>
<div class="overview-board">
<div class="overview-copy">
<h3>当前 80 分判定</h3>
<p><strong id="maturity80-score">0 / 100 · BLOCKED</strong></p>
<p id="maturity80-policy">等待 machine profile。缺失数据时不得获得分数。</p>
</div>
<div class="evidence-summary">
<h3>不可补偿前置</h3>
<ul class="runtime-list" id="maturity80-prerequisites">
<li>等待状态数据</li>
</ul>
</div>
</div>
<div class="matrix-wrap">
<table class="bundle-table">
<caption class="visually-hidden">Quant OS 80 分七个维度的已验证得分和最低分</caption>
<thead>
<tr>
<th scope="col">Domain</th>
<th scope="col">Verified</th>
<th scope="col">Weight</th>
<th scope="col">Required floor</th>
<th scope="col">Status</th>
</tr>
</thead>
<tbody id="maturity80-domain-body"></tbody>
</table>
</div>
<div class="gate-stack" id="maturity80-control-list"></div>
</section>
<section class="audit-section" id="gates" aria-labelledby="gates-title">
<div class="section-header">
<span class="section-code">SEC.05</span>
<div>
<h2 class="section-title" id="gates-title">Baseline 60 · G1G10</h2>
<p class="section-intro">Gate 是发布闸门,不是代码清单。展开每项查看验收定义和缺失证据;当前 10 项均未通过。</p>
@@ -1639,7 +1679,7 @@
<section class="audit-section" id="bundles" aria-labelledby="bundles-title">
<div class="section-header">
<span class="section-code">SEC.05</span>
<span class="section-code">SEC.06</span>
<div>
<h2 class="section-title" id="bundles-title">跨平台发布包完整性</h2>
<p class="section-intro">构建器核对共享核心、wrapper、配置与生成单文件的 SHA-256。哈希一致只证明代码发布包完整,不证明目标平台通过。</p>
@@ -1664,7 +1704,7 @@
<section class="audit-section" id="provenance" aria-labelledby="provenance-title">
<div class="section-header">
<span class="section-code">SEC.06</span>
<span class="section-code">SEC.07</span>
<div>
<h2 class="section-title" id="provenance-title">证据来源与快照血缘</h2>
<p class="section-intro">所有公开字段由仓库中的权威记录生成并脱敏。链接指向私有 Gitea 源码,访问时可能要求登录。</p>
@@ -1738,7 +1778,7 @@
<footer class="page-footer">
<p>本页是公开、脱敏的构建时快照。未发布本地行情、运行 artifacts、券商状态或可复用凭据。任何实盘决策必须回到 G1–G10 的发布级证据。</p>
<a href="https://git.gomars.fun/boat/quants-strategies/src/branch/master/quant-os" target="_blank" rel="noopener noreferrer">
<a href="https://git.gomars.fun/boat/quant-os/src/branch/master" target="_blank" rel="noopener noreferrer">
源码(需登录)
<svg class="icon" aria-hidden="true"><use href="#icon-external"></use></svg>
</a>
@@ -1759,7 +1799,7 @@
(() => {
"use strict";
const repoBase = "https://git.gomars.fun/boat/quants-strategies/src/branch/master/quant-os/";
const repoBase = "https://git.gomars.fun/boat/quant-os/src/branch/master/";
const statusLabels = {
implemented: { label: "已实现", tone: "implemented" },
tested: { label: "合同验证", tone: "tested" },
@@ -1830,13 +1870,14 @@
const renderHeader = (data) => {
const claim = data.claim || {};
const summary = data.summary || {};
const maturity80 = data.maturity80 || {};
byId("claim-status").textContent = claim.status || "NOT_BASELINE_60";
byId("claim-gates").textContent = `${claim.gatesPassed ?? 0} / ${claim.gatesTotal ?? 10} GATES`;
byId("claim-reason").textContent = claim.reason || "缺少发布级证据。";
byId("overview-reason").textContent = claim.reason || "缺少发布级证据。";
byId("metric-score").textContent = claim.score == null
? String(claim.scoreStatus || "not_scored").replaceAll("_", " ").toUpperCase()
: String(claim.score);
byId("market-scope-copy").textContent = data.marketScope?.statement ||
"当前交易执行范围仅覆盖沪深;北交所尚未接入,所有北交所委托必须 fail closed";
byId("metric-score").textContent = `${maturity80.effectiveScore ?? 0} / ${maturity80.maximumScore ?? 100}`;
byId("metric-gates").textContent = `${claim.gatesPassed ?? 0} / ${claim.gatesTotal ?? 10}`;
byId("metric-tests").textContent = summary.testsRecorded == null ? "—" : String(summary.testsRecorded);
byId("metric-tests-note").textContent = summary.optionalSkipsRecorded == null
@@ -1853,6 +1894,63 @@
: "<li>无真实运行证据记录</li>";
};
const renderMaturity80 = (data) => {
const maturity = data.maturity80 || {};
byId("maturity80-score").textContent =
`${maturity.effectiveScore ?? 0} / ${maturity.maximumScore ?? 100} · ${maturity.state || "BLOCKED"}`;
byId("maturity80-policy").textContent = maturity.evidencePolicy ||
"缺少 hash-linked evidence 时不得计分。";
const prerequisiteLabels = {
baseline_60_all_gates: "Baseline 60 · G1G10 全通过",
real_qmt_observed: "真实 QMT 已观察",
broker_programmatic_confirmation: "券商程序化交易确认",
shadow_trading_days: "同一候选 60 个交易日 shadow",
canary_trading_days: "受限资金 10 个交易日 canary",
open_p0_within_limit: "未关闭 P0 = 0",
open_p1_within_limit: "未关闭 P1 = 0"
};
const prerequisites = maturity.prerequisites || {};
const prerequisiteRows = Object.entries(prerequisiteLabels)
.map(([key, label]) => `<li>${escapeHtml(label)} · ${prerequisites[key] === true ? "PASS" : "BLOCKED"}</li>`)
prerequisiteRows.push(
`<li>Pre-canary 授权记录已核验 · ${maturity.preCanaryAuthorizationVerified === true ? "PASS" : "BLOCKED"}</li>`,
`<li>Canary 证据反向绑定授权 · ${maturity.canaryAuthorizationChainVerified === true ? "PASS" : "BLOCKED"}</li>`,
`<li>最终 promotion 可信 attestation · ${maturity.trustedAttestationVerified === true ? "PASS" : "BLOCKED"}</li>`
);
byId("maturity80-prerequisites").innerHTML = prerequisiteRows.join("");
const domains = Array.isArray(maturity.domains) ? maturity.domains : [];
byId("maturity80-domain-body").innerHTML = domains.map((domain) => `
<tr>
<td><strong>${escapeHtml(domain.id)} · ${escapeHtml(domain.name)}</strong></td>
<td>${escapeHtml(domain.score)}</td>
<td>${escapeHtml(domain.weight)}</td>
<td>${escapeHtml(domain.minimumScore)}</td>
<td>${statusTag(domain.floorPassed ? "tested" : "blocked")}</td>
</tr>
`).join("");
const controls = Array.isArray(maturity.controls) ? maturity.controls : [];
byId("maturity80-control-list").innerHTML = controls.map((control) => `
<details class="gate-item">
<summary>
<span class="gate-id">${escapeHtml(control.id)}</span>
<span class="gate-name">${escapeHtml(control.name)}</span>
<span class="gate-acceptance">${control.hardGate ? "HARD GATE" : "SCORED CONTROL"} · ${escapeHtml(control.weight)} points · min ${escapeHtml(control.minimumEvidenceTier)}</span>
${statusTag(control.status)}
</summary>
<div class="gate-detail">
<div>
<h4>Current gap</h4>
<p>${escapeHtml(control.note || "No qualifying evidence recorded.")}</p>
</div>
<div>
<h4>Evidence rule</h4>
<p>只有绑定同一候选身份、达到最低 tier、SHA-256 可重算且通过可信 verifier 的 claim 才能通过。</p>
</div>
</div>
</details>
`).join("");
};
const renderLayers = (data) => {
const layers = Array.isArray(data.layers) ? data.layers : [];
byId("layer-list").innerHTML = layers.map((layer, index) => `
@@ -2071,15 +2169,66 @@
const validatePublicData = (data) => {
if (!data || typeof data !== "object") throw new Error("missing public status object");
if (data.claim?.status !== "NOT_BASELINE_60") throw new Error("unsafe claim status");
if (data.claim?.releaseVerified !== false || data.claim?.liveReady !== false) {
throw new Error("unsafe release claim");
const claim = data.claim || {};
if (!["NOT_BASELINE_60", "BASELINE_60_VERIFIED"].includes(claim.status)) {
throw new Error("unsupported claim status");
}
if (data.claim?.gatesPassed !== 0 || data.claim?.gatesTotal !== 10) {
throw new Error("unexpected gate score");
if (!Array.isArray(data.gates) || data.gates.length !== claim.gatesTotal) {
throw new Error("gate set mismatch");
}
if (!Array.isArray(data.gates) || data.gates.some((gate) => gate.status !== "not_passed")) {
throw new Error("all gates must remain explicitly not_passed");
if (data.gates.some((gate) => !["passed", "not_passed"].includes(gate.status))) {
throw new Error("unsupported gate status");
}
const gatesPassed = data.gates.filter((gate) => gate.status === "passed").length;
if (gatesPassed !== claim.gatesPassed) throw new Error("gate count mismatch");
const baselineVerified = claim.status === "BASELINE_60_VERIFIED";
if (baselineVerified !== Boolean(claim.releaseVerified)) {
throw new Error("baseline release claim mismatch");
}
if (baselineVerified && gatesPassed !== claim.gatesTotal) {
throw new Error("baseline claim requires every gate");
}
const maturity = data.maturity80 || {};
const marketScope = data.marketScope || {};
if (
JSON.stringify(marketScope.included) !== JSON.stringify(["SSE", "SZSE"])
|| JSON.stringify(marketScope.excludedFailClosed) !== JSON.stringify(["BSE"])
|| marketScope.bseTradingEnabled !== false
) {
throw new Error("unsafe or ambiguous market scope");
}
if (Boolean(maturity.baseline60Passed) !== baselineVerified) {
throw new Error("60/80 assessment mismatch");
}
if (Boolean(maturity.qualified) !== Boolean(claim.liveReady)) {
throw new Error("limited-live claim mismatch");
}
if (maturity.qualified && (
maturity.state !== "LIMITED_LIVE_VERIFIED"
|| !maturity.trustedAttestationVerified
|| !maturity.preCanaryAuthorized
|| !maturity.canaryAuthorizationChainVerified
)) {
throw new Error("unattested production-80 claim");
}
if (
["PRE_CANARY_AUTHORIZED", "CANARY_RUNNING"].includes(maturity.state)
&& !maturity.preCanaryAuthorized
) {
throw new Error("current canary state lacks authorization");
}
if (maturity.preCanaryAuthorized
&& !maturity.preCanaryAuthorizationVerified) {
throw new Error("unattested pre-canary authorization");
}
if (
String(maturity.state || "").startsWith("TEST_ONLY_")
&& (!maturity.testOnly || maturity.qualified)
) {
throw new Error("test-only assessment overclaim");
}
if (!baselineVerified && maturity.effectiveScore > 59) {
throw new Error("production-80 score violates baseline-60 cap");
}
};
@@ -2095,6 +2244,7 @@
renderLayers(data);
renderModels(data);
renderPlatforms();
renderMaturity80(data);
renderGates(data);
renderBundles(data);
renderActions(data);
+506 -28
View File
@@ -1,6 +1,6 @@
// Generated by tools/build_public_status.py; do not edit by hand.
window.QUANT_OS_PUBLIC_STATUS = {
"auditAsOf": "2026-07-26",
"auditAsOf": "2026-07-30",
"bundles": {
"artifacts": [
{
@@ -116,8 +116,8 @@ window.QUANT_OS_PUBLIC_STATUS = {
"authorized JQData market snapshot, licence/lineage record and a frozen provider-data candidate tape",
"authorized real-data multi-period JoinQuant TargetPackage run plus same-input local/JoinQuant layer-by-layer reconciliation",
"real QMT TargetPackage built-in and qmttools backtest exports",
"real QMT historical-ST positive control, terminal/xtquant build record, broker query contract and trade-amount semantic probes, callback/restart and at least 20 trading days of shadow evidence",
"continuous reconciliation, recovery drills and broker compliance confirmation"
"real QMT historical-ST positive control, terminal/xtquant build record, broker query contract and trade-amount semantic probes, and callback/restart evidence; Baseline 60 requires at least 20 trading days of shadow, while the current Production 80 gap requires at least 60 trading days for the same frozen candidate",
"continuous reconciliation, recovery drills and broker programmatic-trading report/verification confirmation"
],
"internal": [
"The authorized provider-data path has not yet been connected end to end to the frozen Ridge ModelBundle, calibrated risk/cost inputs, five-layer Baseline candidate and TargetPackage tape; the current connected candidate remains synthetic.",
@@ -203,11 +203,17 @@ window.QUANT_OS_PUBLIC_STATUS = {
"kind": "runbook",
"label": "Platform deployment runbook",
"path": "runbooks/PLATFORM_DEPLOYMENT.md"
},
{
"id": "public-status-deployment",
"kind": "runbook",
"label": "Atomic public status deployment",
"path": "ops/README.md"
}
],
"freshness": [
{
"asOf": "2026-07-26",
"asOf": "2026-07-30",
"evidenceLinks": [
"scorecard",
"audit"
@@ -216,7 +222,7 @@ window.QUANT_OS_PUBLIC_STATUS = {
"label": "项目证据审计",
"semantics": "证据盘点日期;不是部署时间,也不是行情截止日。",
"status": "recorded",
"value": "2026-07-26"
"value": "2026-07-30"
},
{
"evidenceLinks": [
@@ -292,7 +298,7 @@ window.QUANT_OS_PUBLIC_STATUS = {
"label": "QMT / broker 真实运行",
"lastRealRuntimeAt": null,
"productionReady": false,
"semantics": "QMT 只有 bundle/harnessXtTrader 只有 fake-broker 只读合同;尚无真实运行或 20 日影子证据。",
"semantics": "QMT 只有 bundle/harnessXtTrader 只有 fake-broker 只读合同;尚无真实运行或影子证据。Baseline 60 至少需要 20 个交易日,Production 80 当前缺口为同一冻结候选至少 60 个交易日。",
"status": "blocked",
"value": "N/A"
}
@@ -486,13 +492,13 @@ window.QUANT_OS_PUBLIC_STATUS = {
"limitations": [
"真实平台跨引擎 manifest",
"逐层 signal/target/order 差异",
"QMT 至少 20 个交易日影子记录"
"Baseline 60 所需的 QMT 至少 20 个交易日影子记录Production 80 另要求同一冻结候选至少 60 个交易日"
],
"name": "跨引擎一致性",
"requiredEvidence": [
"真实平台跨引擎 manifest",
"逐层 signal/target/order 差异",
"QMT 至少 20 个交易日影子记录"
"Baseline 60 所需的 QMT 至少 20 个交易日影子记录Production 80 另要求同一冻结候选至少 60 个交易日"
],
"status": "not_passed"
},
@@ -519,7 +525,7 @@ window.QUANT_OS_PUBLIC_STATUS = {
"status": "not_passed"
}
],
"generatedAt": "2026-07-26T00:00:00Z",
"generatedAt": "2026-07-30T00:00:00Z",
"generatedAtSource": "audit_as_of",
"layers": [
{
@@ -646,7 +652,7 @@ window.QUANT_OS_PUBLIC_STATUS = {
],
"id": "broker-oms",
"limitations": [
"无真实券商 attestation、回调/重启证明和 20 个交易日影子记录;没有实盘下单入口。"
"无真实券商 attestation、回调/重启证明和影子记录Baseline 60 至少需要 20 个交易日,Production 80 当前缺口为同一冻结候选至少 60 个交易日;没有实盘下单入口。"
],
"name": "券商、订单与影子盘",
"releaseVerified": false,
@@ -673,6 +679,412 @@ window.QUANT_OS_PUBLIC_STATUS = {
"status": "blocked"
}
],
"marketScope": {
"bseTradingEnabled": false,
"excludedFailClosed": [
"BSE"
],
"executionScopeLabel": "沪深(上交所、深交所)",
"included": [
"SSE",
"SZSE"
],
"statement": "当前交易执行范围仅覆盖沪深;北交所尚未接入,所有北交所委托必须 fail closed。"
},
"maturity80": {
"assessedAsOf": "2026-07-30",
"baseline60AttestationVerified": false,
"baseline60Passed": false,
"baselineProfileCanonicalSha256": "34adf09a824299ddb07c17f56751527ddf96ff5e494e792be0c65da4f8acdeb3",
"canaryAuthorizationChainVerified": false,
"canaryObservation": null,
"canaryRunning": false,
"controls": [
{
"domainId": "D1",
"hardGate": true,
"id": "D1-PIT",
"minimumEvidenceTier": "E2",
"name": "Production PIT dataset is complete, immutable and replayable",
"note": "No authorized complete production PIT dataset has reached the frozen Ridge path.",
"status": "not_passed",
"weight": 4
},
{
"domainId": "D1",
"hardGate": true,
"id": "D1-OPS",
"minimumEvidenceTier": "E3",
"name": "Data licence, lineage, freshness and recovery are operational",
"note": "No production freshness SLO, entitlement record and restore history.",
"status": "not_passed",
"weight": 5
},
{
"domainId": "D1",
"hardGate": false,
"id": "D1-REDUNDANCY",
"minimumEvidenceTier": "E3",
"name": "Critical inputs have independent validation or a tested fallback",
"note": "No independent production source or rehearsed fallback.",
"status": "not_passed",
"weight": 6
},
{
"domainId": "D2",
"hardGate": true,
"id": "D2-OOS",
"minimumEvidenceTier": "E2",
"name": "Frozen real-data walk-forward and OOS evidence is valid",
"note": "The connected Ridge candidate still uses synthetic research data.",
"status": "not_passed",
"weight": 4
},
{
"domainId": "D2",
"hardGate": true,
"id": "D2-MODEL",
"minimumEvidenceTier": "E2",
"name": "Model, feature and release identities are governed",
"note": "ModelBundle exists, but production ownership, expiry, approval and rollback evidence do not.",
"status": "not_passed",
"weight": 5
},
{
"domainId": "D2",
"hardGate": false,
"id": "D2-CHALLENGER",
"minimumEvidenceTier": "E3",
"name": "Champion, challenger, drift and experiment selection are controlled",
"note": "No real-data champion/challenger or production drift history.",
"status": "not_passed",
"weight": 6
},
{
"domainId": "D3",
"hardGate": true,
"id": "D3-LAYERS",
"minimumEvidenceTier": "E3",
"name": "Local, JoinQuant and QMT share frozen L1-L5 identities; Qlib follows its declared comparison scope",
"note": "No real-data local/JoinQuant/QMT L1-L5 strict-peer identity; Qlib has only a separate declared-scope research fixture.",
"status": "not_passed",
"weight": 6
},
{
"domainId": "D3",
"hardGate": true,
"id": "D3-DIFF",
"minimumEvidenceTier": "E3",
"name": "Order and fill differences are completely explained",
"note": "Mock parity and one JoinQuant execution smoke do not close a real QMT difference ledger.",
"status": "not_passed",
"weight": 4
},
{
"domainId": "D4",
"hardGate": true,
"id": "D4-RISK",
"minimumEvidenceTier": "E3",
"name": "Independent pre-trade risk fails closed",
"note": "Risk components exist, but there is no independent real-broker fail-closed service evidence.",
"status": "not_passed",
"weight": 3
},
{
"domainId": "D4",
"hardGate": true,
"id": "D4-RULES",
"minimumEvidenceTier": "E3",
"name": "Effective-dated SSE/SZSE rule packs are current; BSE remains fail-closed",
"note": "The effective-dated 2026-07-06 SSE/SZSE rule packs are not implemented; BSE remains explicitly excluded and fail-closed.",
"status": "not_passed",
"weight": 4
},
{
"domainId": "D4",
"hardGate": true,
"id": "D4-OMS",
"minimumEvidenceTier": "E3",
"name": "Order lifecycle is idempotent and restart-safe",
"note": "No real QMT callback, reconnect and restart lifecycle evidence.",
"status": "not_passed",
"weight": 3
},
{
"domainId": "D4",
"hardGate": false,
"id": "D4-TCA",
"minimumEvidenceTier": "E4",
"name": "Real fills drive TCA and capacity feedback",
"note": "No controlled-live fills or governed TCA feedback.",
"status": "not_passed",
"weight": 5
},
{
"domainId": "D5",
"hardGate": true,
"id": "D5-QMT",
"minimumEvidenceTier": "E3",
"name": "Authorized QMT account contracts are observed end to end",
"note": "QMT has fake-contract and syntax evidence only.",
"status": "not_passed",
"weight": 5
},
{
"domainId": "D5",
"hardGate": true,
"id": "D5-RECON",
"minimumEvidenceTier": "E3",
"name": "Cash, positions, sellable, orders and fills reconcile daily",
"note": "No real daily broker reconciliation series.",
"status": "not_passed",
"weight": 5
},
{
"domainId": "D5",
"hardGate": true,
"id": "D5-EVIDENCE",
"minimumEvidenceTier": "E3",
"name": "Broker facts and callbacks have authenticated replay evidence",
"note": "Local HMAC evidence is not broker attestation or real callback history.",
"status": "not_passed",
"weight": 2
},
{
"domainId": "D5",
"hardGate": true,
"id": "D5-FALLBACK",
"minimumEvidenceTier": "E3",
"name": "Manual broker fallback and operator handoff are rehearsed",
"note": "No real-account manual handoff drill.",
"status": "not_passed",
"weight": 3
},
{
"domainId": "D6",
"hardGate": true,
"id": "D6-SHADOW",
"minimumEvidenceTier": "E3",
"name": "The frozen candidate completes 60 trading days of shadow",
"note": "Zero of the required 60 real QMT shadow trading days are recorded.",
"status": "not_passed",
"weight": 4
},
{
"domainId": "D6",
"hardGate": true,
"id": "D6-CANARY",
"minimumEvidenceTier": "E4",
"name": "Limited capital canary completes at least 10 trading days",
"note": "No limited-capital canary is authorized or observed.",
"status": "not_passed",
"weight": 3
},
{
"domainId": "D6",
"hardGate": true,
"id": "D6-DR",
"minimumEvidenceTier": "E3",
"name": "Failure recovery meets RPO and RTO targets",
"note": "No measured RPO/RTO and broker failure-drill evidence.",
"status": "not_passed",
"weight": 5
},
{
"domainId": "D6",
"hardGate": true,
"id": "D6-RELEASE",
"minimumEvidenceTier": "E3",
"name": "Build, promotion, rollback and audit are reproducible",
"note": "Independent CI, signed release inventory and rollback drill are not yet complete.",
"status": "not_passed",
"weight": 3
},
{
"domainId": "D7",
"hardGate": true,
"id": "D7-SCOPE",
"minimumEvidenceTier": "E3",
"name": "Account and business scope remains personal proprietary",
"note": "The intended personal scope is documented but has no private attestation reference.",
"status": "not_passed",
"weight": 3
},
{
"domainId": "D7",
"hardGate": true,
"id": "D7-REPORT",
"minimumEvidenceTier": "E3",
"name": "Broker programmatic-trading report matches the deployed release",
"note": "No broker programmatic-trading confirmation exists yet.",
"status": "not_passed",
"weight": 4
},
{
"domainId": "D7",
"hardGate": true,
"id": "D7-FLOW",
"minimumEvidenceTier": "E3",
"name": "Abnormal-trading and conservative flow controls are enforced",
"note": "No real-account abnormal-trading monitoring history.",
"status": "not_passed",
"weight": 3
},
{
"domainId": "D7",
"hardGate": true,
"id": "D7-SECURITY",
"minimumEvidenceTier": "E3",
"name": "Secrets, access, personal data and supply chain are controlled",
"note": "Repository secret hygiene exists, but production access, rotation and supply-chain evidence do not.",
"status": "not_passed",
"weight": 2
},
{
"domainId": "D7",
"hardGate": false,
"id": "D7-REGULATED",
"minimumEvidenceTier": "E2",
"name": "A future regulated-mode rule calendar is maintained",
"note": "The regulated-mode activation calendar is documentation-only.",
"status": "not_passed",
"weight": 3
}
],
"controlsPassed": 0,
"controlsTotal": 25,
"domainFloorFailures": [
"D1",
"D2",
"D3",
"D4",
"D5",
"D6",
"D7"
],
"domains": [
{
"floorPassed": false,
"id": "D1",
"minimumScore": 9,
"name": "Data and point-in-time truth",
"score": 0,
"weight": 15
},
{
"floorPassed": false,
"id": "D2",
"minimumScore": 9,
"name": "Research and model governance",
"score": 0,
"weight": 15
},
{
"floorPassed": false,
"id": "D3",
"minimumScore": 6,
"name": "Cross-engine consistency",
"score": 0,
"weight": 10
},
{
"floorPassed": false,
"id": "D4",
"minimumScore": 9,
"name": "Execution and independent risk",
"score": 0,
"weight": 15
},
{
"floorPassed": false,
"id": "D5",
"minimumScore": 9,
"name": "Real QMT and broker truth",
"score": 0,
"weight": 15
},
{
"floorPassed": false,
"id": "D6",
"minimumScore": 9,
"name": "Operations, disaster recovery and audit",
"score": 0,
"weight": 15
},
{
"floorPassed": false,
"id": "D7",
"minimumScore": 9,
"name": "Compliance and security",
"score": 0,
"weight": 15
}
],
"effectiveScore": 0,
"evidencePolicy": "Only subject-bound evidence claims verified by a configured trust provider, at or above each control's minimum tier, earn points. The current repository has no production trust provider and therefore cannot self-issue a positive qualification.",
"finalAttestationVerified": false,
"hardGateFailures": [
"D1-OPS",
"D1-PIT",
"D2-MODEL",
"D2-OOS",
"D3-DIFF",
"D3-LAYERS",
"D4-OMS",
"D4-RISK",
"D4-RULES",
"D5-EVIDENCE",
"D5-FALLBACK",
"D5-QMT",
"D5-RECON",
"D6-CANARY",
"D6-DR",
"D6-RELEASE",
"D6-SHADOW",
"D7-FLOW",
"D7-REPORT",
"D7-SCOPE",
"D7-SECURITY"
],
"hardGatesPassed": 0,
"hardGatesTotal": 21,
"maximumScore": 100,
"preCanaryAttestationVerified": false,
"preCanaryAuthorization": null,
"preCanaryAuthorizationVerified": false,
"preCanaryAuthorized": false,
"preCanaryStructurallyEligible": false,
"prerequisites": {
"baseline_60_all_gates": false,
"broker_programmatic_confirmation": false,
"canary_trading_days": false,
"open_p0_within_limit": false,
"open_p1_within_limit": false,
"real_qmt_observed": false,
"shadow_trading_days": false
},
"productionTrustRegistryAvailable": false,
"qualificationThreshold": 80,
"qualified": false,
"rawScore": 0,
"scoreCaps": [
{
"maximum": 59,
"reason": "baseline_60_not_passed"
},
{
"maximum": 79,
"reason": "canary_not_observed"
}
],
"standardCanonicalSha256": "44fc6c168ade4c6de15569214d88b96ce47b22b4120b10c80eb6f212fad5e662",
"standardId": "quant-os-production-80-v1",
"state": "BLOCKED_FROM_LIMITED_LIVE",
"structurallyEligible": false,
"testOnly": false,
"trustedAttestationVerified": false,
"verificationEnvironment": "none"
},
"models": [
{
"claim": "共享 symbol normalization、momentum、target weight/quantity 与 order-delta 计算;2024 JoinQuant hosted run 只证明这一 smoke 路径。",
@@ -777,8 +1189,8 @@ window.QUANT_OS_PUBLIC_STATUS = {
"G9"
],
"priority": 5,
"title": "完成 QMT 券商合同探针与至少 20 日影子盘",
"why": "real QMT historical-ST positive control, terminal/xtquant build record, broker query contract and trade-amount semantic probes, callback/restart and at least 20 trading days of shadow evidence"
"title": "完成 QMT 券商合同探针与 Production 80 的 60 日影子盘(Baseline 60 门槛 20 日)",
"why": "real QMT historical-ST positive control, terminal/xtquant build record, broker query contract and trade-amount semantic probes, and callback/restart evidence; Baseline 60 requires at least 20 trading days of shadow, while the current Production 80 gap requires at least 60 trading days for the same frozen candidate"
},
{
"gateIds": [
@@ -786,8 +1198,8 @@ window.QUANT_OS_PUBLIC_STATUS = {
"G10"
],
"priority": 6,
"title": "完成连续对账、恢复演练与券商合规确认",
"why": "continuous reconciliation, recovery drills and broker compliance confirmation"
"title": "完成连续对账、恢复演练与券商程序化交易报告/核查确认",
"why": "continuous reconciliation, recovery drills and broker programmatic-trading report/verification confirmation"
}
],
"platforms": [
@@ -984,7 +1396,7 @@ window.QUANT_OS_PUBLIC_STATUS = {
"id": "xttrader-read-only-shadow",
"intendedUse": "账户绑定 target-diff 与 broker observation",
"limitations": [
"HMAC 不是 broker attestation;仍缺官方 query 失败/空结果合同callback/restart、20 日真实 shadownot live-ready"
"HMAC 不是 broker attestation;仍缺官方 query 失败/空结果合同callback/restartBaseline 60 至少 20 个交易日,Production 80 当前缺口为同一冻结候选至少 60 个交易日not live-ready"
],
"liveReady": false,
"name": "XtTrader read-only shadow",
@@ -1063,16 +1475,30 @@ window.QUANT_OS_PUBLIC_STATUS = {
"provenance": {
"baselineConfig": "configs/baseline.json",
"bundleManifest": "dist/bundle_manifest.json",
"payloadSha256": "76aad7a50088b9949b9c2549a4da568d14c6bc2ff4acc7df6419989637386bc3",
"payloadSha256": "9aae5da8e1d92fd28cfd7d6bef50774c4981b2baac1728ccd3153729234a88f0",
"payloadSha256Semantics": "SHA-256 of canonical payload before payloadSha256 is added.",
"platformMatrix": "docs/PLATFORM_MATRIX.md",
"production80Assessment": "profiles/production-80/current-assessment.json",
"production80Standard": "profiles/production-80/standard.json",
"releaseReachability": "releases/quant60-research-candidate-v1/reachability.json",
"scorecard": "gate_scorecard.json",
"sourceSetSha256": "e1b8bb8827c6c051a73872f2b0ac46f18dcf705fb50768eb98090bbbe08f863c",
"sourceSetSha256": "6d906cde8df07f8fae2f2faf05679a476ceae8f5173533b3b67beecc710b2f61",
"sources": [
{
"path": "gate_scorecard.json",
"sha256": "db9ed17d1b56452f973db23461e8298b4f43f319b04be373adb383133500c2b6"
"sha256": "2cc29f8d3670cd2e1e90ebe10a7d4d5a1ab9fc6a6b08612df2bbad485cd19655"
},
{
"path": "profiles/baseline-60/profile.json",
"sha256": "fbfb71356bd6a711510dd6ef0d84a4f76c47cc8244e90120142fa6bf36780fb9"
},
{
"path": "profiles/production-80/standard.json",
"sha256": "60ca7de08b337b75ca7ed53b7c01b6a7c3d621d788e60a15f26f2adaf2844064"
},
{
"path": "profiles/production-80/current-assessment.json",
"sha256": "f6439d548c4bf176dfcd734ade2e3343b2673e9e11f8233d7c642d4ee3436369"
},
{
"path": "dist/bundle_manifest.json",
@@ -1092,27 +1518,43 @@ window.QUANT_OS_PUBLIC_STATUS = {
},
{
"path": "README.md",
"sha256": "d5593bdc4e535502ba817636053dc8ac38f8594be6f9e61f0fe2d11cf883a985"
"sha256": "0bf0562ae9247a88a5b0248f66b9b314d7ab0ea435bc8f8e5efa78f7d2f785bb"
},
{
"path": "docs/ARCHITECTURE.md",
"sha256": "93b1981168084f40c6d127dc534ff2e60eb4cd0703c8ef446c6df58b351dfbaa"
"sha256": "8aae46f1b371651ac6f72905b7bcb3d72fdfda2a793e5505ab890352921c3219"
},
{
"path": "docs/architecture/ARCHITECTURE_80.md",
"sha256": "bb57df9d7eb5858741dde282ae0853a5e4ec9f4f4eb290bdb5954228fcb8956a"
},
{
"path": "docs/AUDIT_2026-07-25.md",
"sha256": "c070b49dfc2805c338400697369d886a6dc47b53af4a1834d0dfd383431e74d0"
},
{
"path": "docs/standards/QUANT_OS_80_STANDARD.md",
"sha256": "90dc9e7f1c5be17f5e6672598aac4afca3d26cf0099ae794c1be85bdafd0b65b"
},
{
"path": "docs/standards/BASELINE_60_VS_PRODUCTION_80.md",
"sha256": "c99e858dc186c100ff9d9cd673b1644bdcb81fecd6fe945166bdd7966b9cfe8a"
},
{
"path": "docs/getting-started/GETTING_STARTED_80.md",
"sha256": "5c18a558bd2f9e1640144a1729309bf38ada3185188c985476bd609b28c4479e"
},
{
"path": "docs/PLATFORM_MATRIX.md",
"sha256": "4880b17e54257b794398bf734d80ea40d1180e52845762987443a9c61d562a23"
"sha256": "9c7952b019c92efd1055488b58838045ee30979ccc84008cd1218fab2a6d6717"
},
{
"path": "docs/CROSS_ENGINE_CONSISTENCY.md",
"sha256": "358e4798bf853a96cb288ac379f916938415b86e86dbe4fa0e3fb4a86a612b6f"
"sha256": "bdb493e84201f51c5b91bacf8c894858b0c2dbceaaf0522c68d42d040ed45057"
},
{
"path": "docs/JOINQUANT_HOSTED_EVIDENCE_2026-07-26.md",
"sha256": "03df249829b3ad9b4fe33c5d93afbd842561458f4ff2fe10e80e4432934eb2d2"
"sha256": "71d017a7e009331413f378fc847203d19eaa1c24317f364e9dcebe645df3d13b"
},
{
"path": "docs/JOINQUANT_TARGET_PACKAGE_EVIDENCE_2026-07-26.md",
@@ -1120,11 +1562,39 @@ window.QUANT_OS_PUBLIC_STATUS = {
},
{
"path": "docs/TUSHARE_LOCAL_DATA.md",
"sha256": "fd6cfe6cf45dbdd82e6aa88e80b119e05a888c560b79907370c6e023b5e00e82"
"sha256": "611b120ba59b59b443b5cd9237356c509f2f2699063784a4685506e88a95adea"
},
{
"path": "MIGRATION.md",
"sha256": "1d86ef7d854dc7c2eed80d2c5e5de0ee30bf87035be9be27a2eb8cb098277a5c"
},
{
"path": "ops/README.md",
"sha256": "eda75a106ea961faa22ada2c95c503ee2a5437030e238d065d7f112550dcac0d"
},
{
"path": "ops/activate_static_status.sh",
"sha256": "26e026da5ab13d228696de4a1d9a811bc80e2adf3220859b868129852655a93f"
},
{
"path": "ops/deploy_static_status.sh",
"sha256": "2b86edbd76e42832aba661d98cbadfc34607fb626d36324f7933e89c66a89c6e"
},
{
"path": "ops/nginx/quant-os-static.conf",
"sha256": "10b1c338c22caa0d4c4f68c1213d6c297a367995601dece7dd19df561b0c002e"
},
{
"path": "ops/nginx/quant-os-legacy-redirects-302.conf",
"sha256": "5206a0ed69ee01b8596fb3c5be9fdab713c14a512968c0cd24839e65495508a4"
},
{
"path": "ops/nginx/quant-os-legacy-redirects-308.conf",
"sha256": "ce8fc27e36b1c07dad445d76199b31a0113b42d759db8af7a60a3442548d4f94"
},
{
"path": "runbooks/PLATFORM_DEPLOYMENT.md",
"sha256": "f6bb1eda335c0d05f96d39b4d4167ee623fe6cffeef75015ba7985638fa8f635"
"sha256": "001bc09f6865c6ee90fbbc2363b94bed7a282d039790af024457a5b1390b9840"
},
{
"path": "tools/build_release_reachability.py",
@@ -1132,11 +1602,19 @@ window.QUANT_OS_PUBLIC_STATUS = {
},
{
"path": "tools/build_public_status.py",
"sha256": "38347c2238a38fc603703c7265fd1ca54480b3f3f8c453cde9f21056f207a4ec"
"sha256": "ec24dd12a6383ab1210a475c6f982b911f6ce45a7c205b9474bb2bb70665bc2a"
},
{
"path": "tools/check_tracked_secrets.py",
"sha256": "359eddb5fb009d3790bd81ce9c939ceb9aea7868fde4ccbc22ffe01099c62304"
},
{
"path": "tools/inventory_local_assets.py",
"sha256": "f52a89b2e42d0f3aed7e3c79e0110c37cab779794f550658116e07b9e338160b"
}
]
},
"schemaVersion": 1,
"schemaVersion": 2,
"summary": {
"allFiveLayersRealPlatformObserved": false,
"candidateRealPlatformObservationScope": "target_package_execution_consumer_only",
@@ -1153,7 +1631,7 @@ window.QUANT_OS_PUBLIC_STATUS = {
"Tushare completed-partition Qlib momentum smoke"
],
"testEvidenceQualifier": "Scorecard-recorded run; tests do not prove real-platform or broker gates.",
"testsRecorded": 285
"testsRecorded": 315
},
"system": "Quant OS / quant60 baseline kernel"
};