Files
whetstone_DSL/editor/src/Sprint27IntegrationSummary.h

72 lines
3.0 KiB
C++

#pragma once
// Step 533: Sprint 27 Integration + Summary
#include <string>
#include <vector>
struct Sprint27Signals {
bool taskitemContractSchema = false; // Step 524
bool legalOperationGraph = false; // Step 525
bool symbolScopeExtractor = false; // Step 526
bool constraintDiagnostics = false; // Step 527
bool phase27aIntegrationGate = false; // Step 528
bool preApplyValidationGate = false; // Step 529
bool postApplyStructuralGate = false; // Step 530
bool contractDeltaChecker = false; // Step 531
bool retryEscalationProtocol = false; // Step 532
};
struct Sprint27IntegrationResult {
bool phase27aPass = false;
bool phase27bPass = false;
bool sprint27Pass = false;
std::vector<std::string> notes;
};
class Sprint27IntegrationSummary {
public:
static Sprint27IntegrationResult summarize(const Sprint27Signals& s) {
Sprint27IntegrationResult r;
r.phase27aPass = s.taskitemContractSchema &&
s.legalOperationGraph &&
s.symbolScopeExtractor &&
s.constraintDiagnostics &&
s.phase27aIntegrationGate;
r.phase27bPass = s.preApplyValidationGate &&
s.postApplyStructuralGate &&
s.contractDeltaChecker &&
s.retryEscalationProtocol;
r.sprint27Pass = r.phase27aPass && r.phase27bPass;
r.notes = buildNotes(s, r);
return r;
}
private:
static std::vector<std::string> buildNotes(const Sprint27Signals& s,
const Sprint27IntegrationResult& r) {
std::vector<std::string> notes;
if (!s.taskitemContractSchema) notes.push_back("fail:step524_taskitem_contract_schema");
if (!s.legalOperationGraph) notes.push_back("fail:step525_legal_operation_graph");
if (!s.symbolScopeExtractor) notes.push_back("fail:step526_symbol_scope_extractor");
if (!s.constraintDiagnostics) notes.push_back("fail:step527_constraint_diagnostics");
if (!s.phase27aIntegrationGate) notes.push_back("fail:step528_phase27a_integration");
if (!s.preApplyValidationGate) notes.push_back("fail:step529_pre_apply_validation");
if (!s.postApplyStructuralGate) notes.push_back("fail:step530_post_apply_structural_gate");
if (!s.contractDeltaChecker) notes.push_back("fail:step531_contract_delta_checker");
if (!s.retryEscalationProtocol) notes.push_back("fail:step532_retry_escalation_protocol");
if (r.sprint27Pass) {
notes.push_back("sprint27:constrained_pipeline_pass");
notes.push_back("sprint27:out_of_scope_edits_prevented_by_construction");
notes.push_back("sprint27:hallucinated_symbol_calls_fail_fast");
} else {
if (!r.phase27aPass) notes.push_back("phase27a:blocked");
if (!r.phase27bPass) notes.push_back("phase27b:blocked");
}
return notes;
}
};