Skip to content

Commit 5407532

Browse files
committed
Add visual artifact smoke readiness proof
1 parent 86bf92a commit 5407532

8 files changed

Lines changed: 338 additions & 23 deletions

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
"research:radar": "bun ./scripts/v4/orangebox-research-radar.mjs --json --receipt",
4545
"horizon:review": "bun ./scripts/v4/orangebox-horizon-review-doctor.mjs --json --receipt",
4646
"visual:artifact-vault": "bun ./scripts/v4/orangebox-visual-artifact-vault-doctor.mjs --json --receipt",
47+
"visual:artifact-smoke": "bun ./scripts/v4/orangebox-visual-artifact-smoke-doctor.mjs --json --receipt",
4748
"visual:readiness": "bun ./scripts/v4/orangebox-visual-production-readiness-doctor.mjs --json --receipt",
4849
"assurance:doctor": "bun ./scripts/v4/orangebox-assurance-lab-doctor.mjs --json --receipt",
4950
"tool:ergonomics": "bun ./scripts/v4/orangebox-tool-ergonomics-doctor.mjs --json --receipt",

scripts/v4/orangebox-feature-acceptance-matrix-doctor.mjs

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -325,9 +325,9 @@ async function main() {
325325
lane: "backend_ops",
326326
status: "REAL",
327327
frontend_touch_allowed: false,
328-
proof_command: "npm.cmd run visual:artifact-vault && npm.cmd run visual:readiness",
329-
acceptance_gate: "Visual readiness receipt is present, control_plane_green=true, artifact_vault_ready=true, visual_tool_cards >= 19, and visual_ready remains explicit.",
330-
rollback_path: "Remove the visual artifact vault/readiness package scripts and doctors, then rerun package-script-doctor and feature:proof.",
328+
proof_command: "npm.cmd run visual:artifact-vault && npm.cmd run visual:artifact-smoke && npm.cmd run visual:readiness",
329+
acceptance_gate: "Visual readiness receipt is present, control_plane_green=true, artifact_vault_ready=true, artifact_smoke_ready=true, visual_tool_cards >= 19, and visual_ready remains explicit.",
330+
rollback_path: "Remove the visual artifact vault/smoke/readiness package scripts and doctors, then rerun package-script-doctor and feature:proof.",
331331
evidence: [
332332
evidence(path.join(dataRoot, "visual-production-readiness", "latest-visual-production-readiness.json"), "ORANGEBOX_VISUAL_PRODUCTION_CONTROL_READY_RUNTIME_NOT_PROMOTED", {
333333
accept: (parsed, status) => (
@@ -336,13 +336,17 @@ async function main() {
336336
) && parsed?.ok === true
337337
&& parsed?.control_plane_green === true
338338
&& parsed?.summary?.artifact_vault_ready === true
339+
&& parsed?.summary?.artifact_smoke_ready === true
339340
&& Number(parsed?.summary?.visual_tool_cards || 0) >= 19
340341
&& typeof parsed?.visual_ready === "boolean",
341342
detail: (parsed) => ({
342343
visual_ready: parsed?.visual_ready ?? null,
343344
control_plane_green: parsed?.control_plane_green ?? null,
344345
artifact_vault_ready: parsed?.summary?.artifact_vault_ready ?? null,
346+
artifact_smoke_ready: parsed?.summary?.artifact_smoke_ready ?? null,
345347
artifact_manifest_path: parsed?.summary?.artifact_manifest_path ?? null,
348+
smoke_artifact_path: parsed?.summary?.smoke_artifact_path ?? null,
349+
smoke_artifact_sha256: parsed?.summary?.smoke_artifact_sha256 ?? null,
346350
runtime_ready_lanes: parsed?.summary?.runtime_ready_lanes ?? null,
347351
visual_tool_cards: parsed?.summary?.visual_tool_cards ?? null,
348352
}),
@@ -352,25 +356,27 @@ async function main() {
352356
}),
353357
matrixRow({
354358
id: "horizon_review_new_alpha_stack",
355-
claim: "Orangebox reviews OBOX Jarvis/OpenJarvis, Goose, Context7, Elysia, AI SDK/Ollama, libSQL, Mastra, and GPU acceleration candidates before promotion.",
359+
claim: "Orangebox reviews OBOX Jarvis/OpenJarvis, Goose, Context7, Elysia, LittleOrange/Cortex, AI SDK/Ollama, libSQL, Mastra, and GPU acceleration candidates before promotion.",
356360
lane: "backend_ops",
357361
status: "REAL",
358362
frontend_touch_allowed: false,
359363
proof_command: "npm.cmd run horizon:review",
360-
acceptance_gate: "Horizon review receipt is green with at least 8 candidates, Elysia dependency truth, Goose card truth, and no auto-promotion.",
364+
acceptance_gate: "Horizon review receipt is green with at least 9 candidates, Elysia dependency truth, Goose card truth, LittleOrange doctor truth, and no auto-promotion.",
361365
rollback_path: "Remove the horizon review package script and doctor, then rerun package-script-doctor and feature:proof.",
362366
evidence: [
363367
evidence(path.join(dataRoot, "horizon-review", "latest-horizon-review.json"), "ORANGEBOX_HORIZON_REVIEW_READY", {
364368
accept: (parsed, status) => status === "ORANGEBOX_HORIZON_REVIEW_READY"
365369
&& parsed?.ok === true
366-
&& Number(parsed?.summary?.candidates_reviewed || 0) >= 8
370+
&& Number(parsed?.summary?.candidates_reviewed || 0) >= 9
367371
&& parsed?.summary?.elysia_dependency_present === true
368-
&& parsed?.summary?.goose_card_present === true,
372+
&& parsed?.summary?.goose_card_present === true
373+
&& parsed?.summary?.littleorange_doctor_present === true,
369374
detail: (parsed) => ({
370375
candidates_reviewed: parsed?.summary?.candidates_reviewed ?? null,
371376
active_contracts: parsed?.summary?.active_contracts ?? null,
372377
elysia_dependency_present: parsed?.summary?.elysia_dependency_present ?? null,
373378
goose_card_present: parsed?.summary?.goose_card_present ?? null,
379+
littleorange_doctor_present: parsed?.summary?.littleorange_doctor_present ?? null,
374380
}),
375381
}),
376382
],

scripts/v4/orangebox-harness-benchmark-doctor.mjs

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,9 @@ const requiredOpsScripts = [
148148
"research:scout",
149149
"research:radar",
150150
"horizon:review",
151+
"littleorange:doctor",
151152
"visual:artifact-vault",
153+
"visual:artifact-smoke",
152154
"visual:readiness",
153155
"knowledge:improvements",
154156
"assurance:doctor",
@@ -784,10 +786,11 @@ const tasks = [
784786
id: "visual_production_readiness_truth",
785787
category: "visual_runtime_truth",
786788
oracle: "Visual/media/design readiness must distinguish control-plane proof from promoted runtime power and must not touch the living frontend lane.",
787-
budget: { timeout_ms: 1600, max_files_read: 5, max_tool_calls: 0 },
789+
budget: { timeout_ms: 1600, max_files_read: 6, max_tool_calls: 0 },
788790
run(trace) {
789791
const visual = readJson(path.join(dataRoot, "visual-production-readiness", "latest-visual-production-readiness.json"), trace);
790792
const vault = readJson(path.join(dataRoot, "visual-artifacts", "latest-visual-artifact-vault.json"), trace);
793+
const smoke = readJson(path.join(dataRoot, "visual-artifacts", "latest-visual-artifact-smoke.json"), trace);
791794
const feature = readJson(path.join(dataRoot, "feature-proof", "latest-feature-acceptance-matrix.json"), trace);
792795
const project = readJson(path.join(dataRoot, "reports", "project", "latest-project-report.json"), trace);
793796
const packageJson = readJson(path.join(repoRoot, "package.json"), trace);
@@ -796,16 +799,26 @@ const tasks = [
796799
const visualRow = feature?.matrix?.find((row) => row.id === "visual_production_readiness");
797800
const visualProjectRow = project?.scope?.find((row) => row.area === "Visual production readiness");
798801
if (!packageJson?.scripts?.["visual:artifact-vault"]?.includes("orangebox-visual-artifact-vault-doctor.mjs")) failures.push("Package script visual:artifact-vault missing or wrong");
802+
if (!packageJson?.scripts?.["visual:artifact-smoke"]?.includes("orangebox-visual-artifact-smoke-doctor.mjs")) failures.push("Package script visual:artifact-smoke missing or wrong");
799803
if (!packageJson?.scripts?.["visual:readiness"]?.includes("orangebox-visual-production-readiness-doctor.mjs")) failures.push("Package script visual:readiness missing or wrong");
800804
if (vault?.status !== "ORANGEBOX_VISUAL_ARTIFACT_VAULT_GREEN" || vault?.vault_ready !== true) failures.push(`Visual artifact vault not green: ${vault?.status || "missing"}`);
801805
if (vault?.vault?.pointer_only !== true) failures.push("Visual artifact vault does not preserve pointer_only=true");
802806
if (vault?.vault?.receipt_binary_payload_allowed !== false) failures.push("Visual artifact vault does not forbid receipt binary payloads");
803807
if (!vault?.proof_artifact?.manifest_path) failures.push("Visual artifact vault does not expose proof manifest path");
808+
if (smoke?.status !== "ORANGEBOX_VISUAL_ARTIFACT_SMOKE_GREEN" || smoke?.smoke_ready !== true) failures.push(`Visual artifact smoke not green: ${smoke?.status || "missing"}`);
809+
if (smoke?.artifact?.mime_type !== "image/png") failures.push(`Visual artifact smoke mime wrong: ${smoke?.artifact?.mime_type || "missing"}`);
810+
if (smoke?.artifact?.runtime_generated_media !== false) failures.push("Visual artifact smoke incorrectly claims runtime_generated_media");
811+
if (smoke?.vault?.receipt_binary_payload_allowed !== false) failures.push("Visual artifact smoke does not forbid receipt binary payloads");
812+
if (!/^[a-f0-9]{64}$/.test(smoke?.artifact?.sha256 || "")) failures.push("Visual artifact smoke sha256 missing/invalid");
804813
if (visual?.status !== "ORANGEBOX_VISUAL_PRODUCTION_CONTROL_READY_RUNTIME_NOT_PROMOTED" && visual?.status !== "ORANGEBOX_VISUAL_PRODUCTION_RUNTIME_READY") failures.push(`Visual readiness status wrong/missing: ${visual?.status || "missing"}`);
805814
if (visual?.ok !== true) failures.push("Visual readiness ok=true missing");
806815
if (visual?.control_plane_green !== true) failures.push("Visual readiness control_plane_green=true missing");
807816
if (visual?.summary?.artifact_vault_ready !== true) failures.push("Visual readiness does not mirror artifact_vault_ready=true");
817+
if (visual?.summary?.artifact_smoke_ready !== true) failures.push("Visual readiness does not mirror artifact_smoke_ready=true");
818+
if (visual?.summary?.visual_artifact_pipeline_ready !== true) failures.push("Visual readiness does not mirror visual_artifact_pipeline_ready=true");
808819
if (!visual?.summary?.artifact_manifest_path) failures.push("Visual readiness does not mirror artifact manifest path");
820+
if (visual?.summary?.smoke_artifact_path !== smoke?.artifact?.artifact_path) failures.push("Visual readiness does not mirror smoke artifact path");
821+
if (visual?.summary?.smoke_artifact_sha256 !== smoke?.artifact?.sha256) failures.push("Visual readiness does not mirror smoke artifact hash");
809822
if (typeof visual?.visual_ready !== "boolean") failures.push("Visual readiness does not expose boolean visual_ready");
810823
if ((visual?.summary?.visual_tool_cards || 0) < 19) failures.push(`Visual tool card count too low: ${visual?.summary?.visual_tool_cards || 0}`);
811824
if ((visual?.summary?.control_green_lanes || 0) !== 4) failures.push(`Control-green lane count is not 4: ${visual?.summary?.control_green_lanes || 0}`);
@@ -829,13 +842,18 @@ const tasks = [
829842
control_green_lanes: visual?.summary?.control_green_lanes ?? null,
830843
runtime_ready_lanes: visual?.summary?.runtime_ready_lanes ?? null,
831844
artifact_vault_status: vault?.status || null,
845+
artifact_smoke_status: smoke?.status || null,
832846
})
833847
: okTask("visual_production_readiness_truth", {
834848
status: visual.status,
835849
visual_ready: visual.visual_ready,
836850
control_plane_green: visual.control_plane_green,
837851
artifact_vault_ready: visual.summary.artifact_vault_ready,
838852
artifact_manifest_path: visual.summary.artifact_manifest_path,
853+
artifact_smoke_ready: visual.summary.artifact_smoke_ready,
854+
smoke_artifact_path: visual.summary.smoke_artifact_path,
855+
smoke_artifact_sha256: visual.summary.smoke_artifact_sha256,
856+
visual_artifact_pipeline_ready: visual.summary.visual_artifact_pipeline_ready,
839857
visual_tool_cards: visual.summary.visual_tool_cards,
840858
control_green_lanes: visual.summary.control_green_lanes,
841859
runtime_ready_lanes: visual.summary.runtime_ready_lanes,
@@ -862,6 +880,7 @@ const tasks = [
862880
"openjarvis_eval",
863881
"context7_mcp_docs_lane",
864882
"ai_sdk_ollama_transport",
883+
"littleorange_cortex_surface",
865884
"libsql_vector_memory",
866885
"mastra_agent_framework",
867886
"tilelang_tilekernels_dflash",
@@ -878,15 +897,19 @@ const tasks = [
878897
const openJarvis = candidates.find((candidate) => candidate.id === "openjarvis_eval");
879898
const context7 = candidates.find((candidate) => candidate.id === "context7_mcp_docs_lane");
880899
const elysia = candidates.find((candidate) => candidate.id === "bun_elysia_api_bridge");
900+
const littleOrange = candidates.find((candidate) => candidate.id === "littleorange_cortex_surface");
881901
if (!String(horizon?.doctrine || "").includes("TriLane remains strategy authority")) failures.push("Horizon doctrine does not preserve TriLane authority");
882902
if (horizon?.summary?.elysia_dependency_present !== true) failures.push("Horizon review does not prove Elysia dependency presence");
883903
if (horizon?.summary?.goose_card_present !== true) failures.push("Horizon review does not prove Goose card presence");
904+
if (horizon?.summary?.littleorange_doctor_present !== true) failures.push("Horizon review does not prove LittleOrange doctor presence");
884905
if (!String(goose?.horizon_decision || "").includes("CANDIDATE")) failures.push("Goose is not kept as a candidate");
885906
if (!String(goose?.promotion_blocker || "").includes("Must not replace TriLane")) failures.push("Goose promotion blocker does not protect TriLane");
886907
if (!String(openJarvis?.orangebox_state || "").includes("eval_harness")) failures.push("OpenJarvis is not stated as eval harness only");
887908
if (openJarvis?.installed_or_present !== false) failures.push("OpenJarvis runtime is incorrectly marked installed/present");
888909
if (!String(context7?.orangebox_state || "").includes("not_installed")) failures.push("Context7 is not stated as not installed");
889910
if (!String(elysia?.horizon_decision || "").includes("ACTIVE_CONTRACT")) failures.push("Elysia bridge is not kept as active contract");
911+
if (!String(littleOrange?.orangebox_state || "").includes("separate_visual_lane")) failures.push("LittleOrange/Cortex is not stated as separate visual lane");
912+
if (littleOrange?.installed_or_present !== true) failures.push("LittleOrange doctor is not marked present");
890913
if (!featureRow?.ok) failures.push("Feature matrix does not prove horizon_review_new_alpha_stack");
891914
if (projectRow?.status !== "REAL") failures.push("Project report does not list horizon review as REAL");
892915
return failures.length
@@ -900,6 +923,7 @@ const tasks = [
900923
candidates_reviewed: horizon.summary.candidates_reviewed,
901924
elysia_dependency_present: horizon.summary.elysia_dependency_present,
902925
goose_card_present: horizon.summary.goose_card_present,
926+
littleorange_doctor_present: horizon.summary.littleorange_doctor_present,
903927
feature_row: "horizon_review_new_alpha_stack",
904928
candidates: required,
905929
});

scripts/v4/orangebox-horizon-review-doctor.mjs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,18 @@ async function main() {
150150
proof_command: "future transport benchmark doctor",
151151
primary_sources: ["https://ai-sdk.dev/providers/community-providers/ollama", "https://ai-sdk.dev/docs/foundations/providers-and-models"],
152152
},
153+
{
154+
id: "littleorange_cortex_surface",
155+
name: "LittleOrange / Cortex IDE surface",
156+
horizon_decision: "ACTIVE_SEPARATE_VISUAL_SURFACE_VERIFY_ONLY",
157+
orangebox_state: pkg.scripts["littleorange:doctor"] ? "doctor_present_separate_visual_lane" : "missing_doctor",
158+
installed_or_present: Boolean(pkg.scripts["littleorange:doctor"]),
159+
current_role: "custom Orangebox AI code chat surface with recent projects, large chat scroll controls, backend rail probes, route spine, receipts, file tree, model lane, and upgrade radar",
160+
promotion_blocker: "Ops may verify receipts and backend connectivity, but frontend edits and release-grade visual proof stay in the separate visual project lane.",
161+
next_action: "Run littleorange:doctor and the visual lane proof stack before calling the surface release-ready.",
162+
proof_command: "npm.cmd run littleorange:doctor",
163+
primary_sources: ["orangebox-v3/docs/V3_MASTER_LEDGER.md", "scripts/v4/littleorange-doctor.mjs"],
164+
},
153165
{
154166
id: "libsql_vector_memory",
155167
name: "libSQL local vector memory",
@@ -213,6 +225,7 @@ async function main() {
213225
dependency_or_registry_present: candidates.filter((candidate) => candidate.installed_or_present).length,
214226
goose_card_present: Boolean(cardStatus(cards, "goose")),
215227
elysia_dependency_present: Boolean(pkg.deps.elysia),
228+
littleorange_doctor_present: Boolean(pkg.scripts["littleorange:doctor"]),
216229
ledger_mentions_v3_phases: ["Elysia API Bridge", "MCP + Context7", "Goose Executor", "OpenJarvis Eval Harness"].every((text) => ledgerText.includes(text)),
217230
package_hash: sha256(JSON.stringify(pkg.deps)),
218231
},
@@ -223,13 +236,15 @@ async function main() {
223236
"Goose is a registered candidate and envelope, not a promoted executor.",
224237
"OpenJarvis is an eval/spec harness, not the active router.",
225238
"Context7 is a docs-lane candidate, not installed as an always-on MCP lane.",
239+
"LittleOrange/Cortex has a doctor and separate visual-surface boundary; Ops verifies it but does not edit its frontend lane here.",
226240
"AI SDK/Ollama, libSQL vectors, Mastra, TileLang, TileKernels, and DFlash are not active dependencies in this repo right now.",
227241
],
228242
next_actions_ranked: [
229243
"Run visual:readiness whenever ToolMesh cards or lab doctors change.",
230244
"Benchmark Elysia sidecar against current rails before making it default.",
231245
"Run Goose only inside a ghost worktree with the existing envelope and one bounded task.",
232246
"Use OpenJarvis to evaluate TriLane efficiency, not to replace it.",
247+
"Run littleorange:doctor and visual proof in the visual lane before calling LittleOrange release-ready.",
233248
"Promote Context7 as read-only docs hydration only after MCP quarantine proof.",
234249
"Keep TileLang/TileKernels/DFlash as Codexa GPU alpha, not N150/dev runtime.",
235250
],

scripts/v4/orangebox-ops-readiness-doctor.mjs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -272,16 +272,21 @@ function main() {
272272
active_contracts: horizonReview?.summary?.active_contracts ?? null,
273273
elysia_dependency_present: horizonReview?.summary?.elysia_dependency_present ?? null,
274274
goose_card_present: horizonReview?.summary?.goose_card_present ?? null,
275-
note: "Reviews OpenJarvis/OBOX Jarvis, Goose, Context7, Elysia, AI SDK/Ollama, libSQL, Mastra, and GPU acceleration candidates without auto-promoting them.",
275+
littleorange_doctor_present: horizonReview?.summary?.littleorange_doctor_present ?? null,
276+
note: "Reviews OpenJarvis/OBOX Jarvis, Goose, Context7, Elysia, LittleOrange/Cortex, AI SDK/Ollama, libSQL, Mastra, and GPU acceleration candidates without auto-promoting them.",
276277
},
277278
visual_production_readiness: {
278-
ok: visualReadiness?.ok === true && visualReadiness?.control_plane_green === true,
279+
ok: visualReadiness?.ok === true && visualReadiness?.control_plane_green === true && visualReadiness?.summary?.visual_artifact_pipeline_ready === true,
279280
path: visualReadinessPath,
280281
status: visualReadiness?.status || null,
281282
visual_ready: visualReadiness?.visual_ready ?? null,
282283
control_plane_green: visualReadiness?.control_plane_green ?? null,
283284
artifact_vault_ready: visualReadiness?.summary?.artifact_vault_ready ?? null,
284285
artifact_manifest_path: visualReadiness?.summary?.artifact_manifest_path ?? null,
286+
artifact_smoke_ready: visualReadiness?.summary?.artifact_smoke_ready ?? null,
287+
smoke_artifact_path: visualReadiness?.summary?.smoke_artifact_path ?? null,
288+
smoke_artifact_sha256: visualReadiness?.summary?.smoke_artifact_sha256 ?? null,
289+
visual_artifact_pipeline_ready: visualReadiness?.summary?.visual_artifact_pipeline_ready ?? null,
285290
runtime_ready_lanes: visualReadiness?.summary?.runtime_ready_lanes ?? null,
286291
visual_tool_cards: visualReadiness?.summary?.visual_tool_cards ?? null,
287292
note: "Reports visual/media/design runtime truth and artifact vault readiness. It may be green as a readiness doctor while visual_ready remains false until runtime tools are promoted.",

0 commit comments

Comments
 (0)