Dashboard mode
${escapeHtml(dashboardMode)}
${matrixMode ? "Matrix campaign artifacts are the primary visible-progress source. Empty local runtime fields are auxiliary and do not mean the matrix has no progress." : "Local runtime receipts are the primary visible-progress source."}
${matrixMode ? matrixProgressCards : runtimeProgressCards}
${
matrixMode
? `
Matrix campaign progress
${escapeHtml(matrixSummary.metricName ?? "matrix campaign")}
cells=${escapeHtml(`${matrixSummary.completedCellCount}/${matrixSummary.cellCount}`)} · selected=${escapeHtml(String(matrixSummary.selectedCellCount))} · lanes=${escapeHtml(String(matrixSummary.candidateLaneCount))} · packets=${escapeHtml(String(matrixSummary.exportedPacketCount))}
latest=${escapeHtml(matrixSummary.latestArtifactPath ?? "none")}
${matrixNextLegalActions || 'No matrix next legal actions discovered yet.
'}
`
: ""
}
Open candidate review posture
${escapeHtml(String(matrixSummary.openCandidateReview.openCellCount))} open review cell(s)
${escapeHtml(matrixSummary.openCandidateReview.summary)}
${escapeHtml(matrixSummary.openCandidateReview.nextLegalAction)}
${escapeHtml(matrixSummary.openCandidateReview.boundary)}
Recommended next
${escapeHtml(matrixMode ? (matrixSummary.nextLegalActions[0] ?? "Review matrix campaign artifacts before acting.") : status.empiricalPosture.recommendedNextAction)}
${escapeHtml(matrixMode ? "Matrix-mode recommendation is derived from discovered local matrix artifacts; durable authority still requires owner review/evidence handoff." : status.empiricalPosture.summary)}
Candidate decision
${escapeHtml(candidateDecision.recommendedDecision)}
${escapeHtml(candidateDecisionLabel)} — ${escapeHtml(candidateDecision.recommendationReason)}
${escapeHtml(candidateDecision.exactNextCalls[0] ?? `${AUTORESEARCH_CANDIDATE_DECISION_TOOL_NAME}({ cwd: ${JSON.stringify(closeout.cwd)}, action: "status" })`)}
Metric readiness / trust
${escapeHtml(metricReadiness.classification)}
${escapeHtml(metricReadiness.summary)}
metric readiness blockers=${escapeHtml(String(metricReadiness.blockedReasons.length))}; ${escapeHtml(metricReadinessBlockers)}
${metricReadinessChecklist || 'No metric readiness checklist items recorded.
'}
Resume plan
${resumePlan.reusable ? "reusable foreground plan" : "blocked until reviewed"}
${escapeHtml(resumePlan.packetKind)} · snapshot=${escapeHtml(resumePlan.snapshotReuse)} · control=${escapeHtml(resumePlan.controlState)} · blockers=${escapeHtml(resumePlanBlockers)}
${escapeHtml(resumePlan.wouldRun ?? `${AUTORESEARCH_STATUS_TOOL_NAME}({ cwd: ${JSON.stringify(closeout.cwd)}, action: "resume_plan" })`)}
Read-only: no benchmark run, resume_apply, daemon, peer launch, candidate mutation, or external evidence/learning write.
Resume apply plan-only proposal
${resumeApplyPlan.planReady ? "proposal ready, execution not authorized" : "proposal blocked"}
${escapeHtml(resumeApplyPlan.packetKind)} · execution authorized=${resumeApplyPlan.executionAuthorized ? "yes" : "no"} · blockers=${escapeHtml(resumeApplyPlanBlockers)}
${escapeHtml(resumeApplyPlan.futureForegroundCall ?? `${AUTORESEARCH_STATUS_TOOL_NAME}({ cwd: ${JSON.stringify(closeout.cwd)}, action: "resume_apply_plan" })`)}
Plan-only: execution is not authorized here; use autoresearch_runtime_resume_apply only with exact foreground confirmation and explicit budgets.
Authority handoff
closeout → AK evidence → learning/KES → Oracle-ready DSPx preflight
${authorityHandoffLines.map((line) => `${escapeHtml(line.replace(/^- /u, ""))}
`).join("\n")}
Learning handoff
export → owner adapter
${escapeHtml(learningExportCall)}
${escapeHtml(learningKesAdapterCall)}
Boundary: export is local only; KES/notes/KMS adapters own persistence and promotion.
Setup guide
configure a bounded segment
${setupGuideLines.map((line) => `${escapeHtml(line.replace(/^- /u, ""))}
`).join("\n")}
Bind → measure → candidate_result_export journey
export inspects measured packet inventory before owner review
${guidedCandidateJourneyLines.map((line) => `${escapeHtml(line.replace(/^- /u, ""))}
`).join("\n")}
Measured packet inventory before owner review
export_visibility_blockers=${matrixSummary.exportVisibilityBlockers.value}
campaigns=${matrixSummary.campaignCount} · cells=${matrixSummary.completedCellCount}/${matrixSummary.cellCount} · selected=${matrixSummary.selectedCellCount} · open review cells=${matrixSummary.openCandidateReview.openCellCount} · lanes=${matrixSummary.candidateLaneCount} · exported packets=${matrixSummary.exportedPacketCount}
${escapeHtml(matrixSummary.openCandidateReview.summary)}
metric=${escapeHtml(matrixSummary.metricName ?? "(unknown)")} (${escapeHtml(matrixSummary.metricDirection ?? "unknown")} is better; target=${escapeHtml(String(matrixSummary.metricTarget ?? "none"))}) · latest=${escapeHtml(matrixSummary.latestArtifactPath ?? "none")}
${escapeHtml(matrixSummary.boundary)}
${matrixNextLegalActions || 'No matrix next legal actions discovered yet.
'}
| Cell | Posture | Lanes | Selected | Packet inventory | Next legal action |
${matrixCellRows || `| No matrix campaign artifacts discovered under .autoresearch/campaigns or .autoresearch/matrix-campaign. |
`}
${matrixMode ? "Local runtime segment snapshot" : "Runtime segment"}
${matrixMode ? "Auxiliary single-segment state for this cwd. Matrix progress above is authoritative for dashboard visibility; blank runtime fields here usually mean the matrix is driven by orchestrator/candidate-wave artifacts instead of one local autoresearch.jsonl segment." : "Primary local runtime segment state for this cwd."}
Campaign
${escapeHtml(segment.name ?? "unconfigured")}
Metric
★ ${escapeHtml(metricName)} ${escapeHtml(direction ?? "")} ${metricUnit ? `(${escapeHtml(metricUnit)})` : ""}
Success threshold
${escapeHtml(formatMetricThresholdValue(segment.metricThreshold, metricUnit))}
Benchmark
${escapeHtml(segment.benchmarkCommand ?? "(unset)")}
Checks
${escapeHtml(segment.checksCommand ?? "(none)")}
${escapeHtml(chartTitle)}${escapeHtml(chartMetricName)} / ${escapeHtml(chartDirection ?? "direction unset")}
${escapeHtml(chartSourceDescription)}
| # | Status | Kind | ★ ${escapeHtml(metricName)} | Decision | Description |
${tableRows || `| No runs recorded yet. |
`}
\n`;
}