@dailephd/my-dev-kit-lab 0.4.3 → 0.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/CHANGELOG.md +468 -0
  2. package/README.md +8 -1
  3. package/dist/scripts/report-context-integrity-smoke.js +70 -0
  4. package/dist/src/evaluation/ecosystemFixtures/index.js +3 -0
  5. package/dist/src/evaluation/ecosystemFixtures/loadContextIntegrityFixture.js +102 -0
  6. package/dist/src/evaluation/ecosystemFixtures/manifestTypes.js +1 -0
  7. package/dist/src/evaluation/ecosystemFixtures/validateManifest.js +82 -0
  8. package/dist/src/evaluation/ecosystemFixtures/verifyFixtureHashes.js +45 -0
  9. package/dist/src/evaluation/stageContextExpectations/producerReadinessExpectationTypes.js +8 -0
  10. package/dist/src/evaluation/stageContextExpectations/validation.js +200 -0
  11. package/dist/src/evaluation/stageContextMetrics/calculateAllocationMetrics.js +265 -0
  12. package/dist/src/evaluation/stageContextMetrics/calculateConditionCoverageMetrics.js +74 -0
  13. package/dist/src/evaluation/stageContextMetrics/calculateCriticalityMetrics.js +112 -0
  14. package/dist/src/evaluation/stageContextMetrics/calculateOwnerMetrics.js +84 -0
  15. package/dist/src/evaluation/stageContextMetrics/calculateProducerConditionAgreement.js +113 -0
  16. package/dist/src/evaluation/stageContextMetrics/calculateReadinessAgreement.js +212 -0
  17. package/dist/src/evaluation/stageContextMetrics/calculateRunIntegrityAgreement.js +309 -0
  18. package/dist/src/evaluation/stageContextMetrics/calculateSupplementalRawAgreement.js +60 -0
  19. package/dist/src/evaluation/stageContextMetrics/calculateTruncationClassification.js +144 -0
  20. package/dist/src/evaluation/stageContextMetrics/evaluateProducerReadinessBridge.js +198 -0
  21. package/dist/src/evaluation/stageContextMetrics/index.js +11 -0
  22. package/dist/src/evaluation/stageContextMetrics/producerReadinessMetricTypes.js +1 -0
  23. package/dist/src/evaluation/stageContextMetrics/runIntegrityAgreementTypes.js +1 -0
  24. package/dist/src/evaluation/stageContextSelectors/contextArtifactConsistency.js +17 -0
  25. package/dist/src/evaluation/stageContextSelectors/index.js +1 -0
  26. package/dist/src/evaluation/stageContextSelectors/orchestratorRunIntegritySelectors.js +64 -0
  27. package/dist/src/evaluation/upstreamArtifacts/index.js +8 -0
  28. package/dist/src/evaluation/upstreamArtifacts/orchestratorContextReadinessResultV1.js +247 -0
  29. package/dist/src/evaluation/upstreamArtifacts/orchestratorRunIntegrityV1.js +33 -0
  30. package/dist/src/evaluation/upstreamArtifacts/readImplementationContextPacketV1.js +9 -0
  31. package/dist/src/evaluation/upstreamArtifacts/readImplementationContextRetrievalReportV1.js +9 -0
  32. package/dist/src/evaluation/upstreamArtifacts/readOrchestratorRunIntegrityV1.js +9 -0
  33. package/dist/src/evaluation/upstreamArtifacts/readSupplementalContextTextFile.js +29 -0
  34. package/dist/src/evaluation/upstreamArtifacts/readTestContextPacketV1.js +9 -0
  35. package/dist/src/evaluation/upstreamArtifacts/readTestContextRetrievalReportV1.js +9 -0
  36. package/dist/src/evaluation/upstreamArtifacts/supplementalContextTextParser.js +75 -0
  37. package/dist/src/evaluation/upstreamArtifacts/supplementalContextTypes.js +152 -0
  38. package/dist/src/evaluation/upstreamArtifacts/validateMyDevKitContextCapsuleV1.js +59 -2
  39. package/dist/src/evaluation/upstreamArtifacts/validateMyDevKitRetrievalAuditRecordV1.js +15 -3
  40. package/dist/src/evaluation/upstreamArtifacts/validateOrchestratorRunIntegrityV1.js +177 -0
  41. package/dist/src/evaluation/upstreamArtifacts/validateSupplementalContextDocumentV1.js +148 -0
  42. package/dist/src/experiments/plugins/contextStrategyComparison/loadV043StrategyArtifacts.js +117 -6
  43. package/dist/src/experiments/plugins/contextStrategyComparison/runV043StageContextStrategyWithAssurance.js +18 -3
  44. package/dist/src/experiments/plugins/contextStrategyComparison/validateV043StrategyInput.js +17 -3
  45. package/dist/src/report/experiments/buildContextIntegrityReport.js +204 -0
  46. package/dist/src/report/experiments/buildContextStrategyComparisonV043Report.js +122 -0
  47. package/dist/src/report/experiments/contextIntegrityReportModel.js +1 -0
  48. package/dist/src/report/experiments/index.js +5 -0
  49. package/dist/src/report/experiments/renderContextIntegrityHtml.js +98 -0
  50. package/dist/src/report/experiments/renderContextIntegrityJsonReport.js +3 -0
  51. package/dist/src/report/experiments/renderContextIntegrityText.js +111 -0
  52. package/dist/src/report/experiments/renderContextStrategyComparisonV043Html.js +62 -0
  53. package/dist/src/report/experiments/renderPluginExperimentReportText.js +67 -0
  54. package/dist/src/securityValidation/packageChecks/requiredPackageContents.js +33 -0
  55. package/dist/src/securityValidation/packageChecks/runPackageChecks.js +11 -5
  56. package/docs/METRICS.md +111 -0
  57. package/package.json +5 -3
  58. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/corrected-replay/derived/run-integrity-evidence.json +99 -0
  59. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/corrected-replay/producer/implementation-audit.json +1585 -0
  60. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/corrected-replay/producer/implementation-capsule.json +11455 -0
  61. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/00-request.txt +1 -0
  62. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/architecture-context-packet.txt +82 -0
  63. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/behavior-model.txt +104 -0
  64. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/final-report.txt +41 -0
  65. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/implementation-context-packet.txt +114 -0
  66. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/implementation-report.txt +92 -0
  67. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/judge-report.txt +34 -0
  68. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/pseudocode-packet.txt +244 -0
  69. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/request-brief.txt +40 -0
  70. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/test-context-packet.txt +93 -0
  71. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/test-implementation-report.txt +69 -0
  72. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/test-strategy-packet.txt +354 -0
  73. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/verification-report.txt +85 -0
  74. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/derived/run-integrity-evidence.json +98 -0
  75. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/producer/architecture-audit.json +1169 -0
  76. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/producer/architecture-request.json +29 -0
  77. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/producer/implementation-audit.json +1494 -0
  78. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/producer/implementation-capsule.json +11364 -0
  79. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/producer/implementation-request.json +33 -0
  80. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/producer/test-request.json +74 -0
  81. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/reports/architecture-context-retrieval-report.txt +58 -0
  82. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/reports/implementation-context-retrieval-report.txt +75 -0
  83. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/reports/test-context-retrieval-report.txt +84 -0
  84. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/run.json +62 -0
  85. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/tool-versions/my-dev-kit-version.txt +1 -0
  86. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/tool-versions/orchestrator-version.txt +1 -0
  87. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/manifests/corrected-replay-manifest.json +19 -0
  88. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/manifests/failed-run-manifest.json +56 -0
  89. package/tests/fixtures/upstream-artifacts/my-dev-kit/1.10.4/PROVENANCE.txt +18 -0
  90. package/tests/fixtures/upstream-artifacts/my-dev-kit/1.10.4/context-capsule/complete-v1.0.0.json +556 -0
  91. package/tests/fixtures/upstream-artifacts/my-dev-kit/1.10.4/retrieval-audit-record/complete-v1.0.0.json +238 -0
  92. package/tests/fixtures/upstream-artifacts/my-dev-kit-1.10.2-identity/PROVENANCE.txt +13 -0
  93. package/tests/fixtures/upstream-artifacts/my-dev-kit-1.10.2-identity/context-capsule.json +7874 -0
  94. package/tests/fixtures/upstream-artifacts/my-dev-kit-1.10.2-identity/retrieval-audit-record.json +1076 -0
  95. package/tests/fixtures/upstream-artifacts/my-dev-kit-orchestrator/1.2.3/run-integrity/PROVENANCE.txt +31 -0
  96. package/tests/fixtures/upstream-artifacts/my-dev-kit-orchestrator/1.2.3/run-integrity/ready-pass-final-pass.json +132 -0
  97. package/tests/fixtures/upstream-artifacts/my-dev-kit-orchestrator/1.2.3/run-integrity/refresh-required-need-context.json +146 -0
@@ -0,0 +1,31 @@
1
+ Artifact source: hand-built fixtures derived from the local my-dev-kit-orchestrator v1.2.3
2
+ readiness-candidate run-integrity contract (not a byte-for-byte real-run capture; the
3
+ orchestrator computes these as in-memory TypeScript results plus one real JSON file
4
+ [artifact-state.json record shape], not one combined JSON artifact -- this fixture bundles
5
+ them under one lab-owned envelope per Batch 3 section 14.1).
6
+ Producer repository: Z:/Users/newuser/Projects/my-dev-kit-orchestrator
7
+ Producer branch: fix/v1.2.3-run-integrity
8
+ Producer candidate commit: 2cb82f09ed423be8defd8277f28608c8a17eae3e
9
+ Producer contract files inspected: src/runIntegrityGate.ts, src/judgeIntegrity.ts,
10
+ src/artifactLifecycle.ts, src/correctionRouter.ts, src/judgeParser.ts
11
+ Bundled schema versions: RUN_INTEGRITY_GATE_SCHEMA_VERSION "1.0.0",
12
+ JUDGE_INTEGRITY_SCHEMA_VERSION "1.0.0" (both reused for the envelope's own "schemaVersion").
13
+ Nested implementationContext/testContext/primaryBlocker reuse the exact upstream
14
+ ContextReadinessResult / ContextReadinessBlockerSummary shape already mirrored by Batch 1's
15
+ orchestratorContextReadinessResultV1.ts -- validated through the existing
16
+ validateOrchestratorContextReadinessResultV1() rather than a second reader.
17
+
18
+ Fixtures in this directory:
19
+ - ready-pass-final-pass.json: the "everything agrees" positive chain (section 29.1) --
20
+ producer/readiness ready, prompt normal (implied by contextReady + no blockedStageNames),
21
+ expected/actual judge PASS, no correction route, final-report eligible/present/PASS,
22
+ lifecycle all complete.
23
+ - refresh-required-need-context.json: the "correctly blocked" positive chain (section 29.2)
24
+ -- readiness refresh-required, expected/actual judge NEED_CONTEXT, correction route active
25
+ to the canonical recommended stage, final report ineligible/absent, implementation stage
26
+ lifecycle forced to "blocked" by the gate.
27
+
28
+ Copy policy: hand-authored fixtures; edit directly when the mirrored contract changes, and
29
+ update this file's "Producer contract files inspected" list to match. These are bounded
30
+ Batch 3 contract fixtures, not the complete Batch 4 frozen ecosystem regression fixture (no
31
+ hash manifest, no byte-exact real-run provenance, no full negative matrix).
@@ -0,0 +1,132 @@
1
+ {
2
+ "schemaVersion": "1.0.0",
3
+ "runFolder": "Z:/fixture/project/.my-dev-kit-orchestrator/runs/run-fixture-001",
4
+ "gate": {
5
+ "schemaVersion": "1.0.0",
6
+ "mode": "feature",
7
+ "contextRequired": true,
8
+ "applicableContextKinds": ["implementation", "test"],
9
+ "implementationContext": {
10
+ "schemaVersion": "1.0.0",
11
+ "kind": "implementation",
12
+ "role": "implementation",
13
+ "decision": "ready",
14
+ "classification": "ready",
15
+ "stageId": "stage.feature.implementation",
16
+ "packetPath": "artifacts/implementation-context-packet.txt",
17
+ "reportPath": "reports/implementation-context-retrieval-report.txt",
18
+ "issues": [],
19
+ "warnings": [],
20
+ "blockingIssueCodes": [],
21
+ "affectedResponsibilityIds": [],
22
+ "evaluatedFreshness": "fresh",
23
+ "evaluatedAdequacy": "sufficient",
24
+ "requiredEvidenceTruncated": "no",
25
+ "readyWithAssumptions": false,
26
+ "provenanceSummary": "resolved from populated packet/report pair",
27
+ "indexIdentity": "Z:/fixture/project"
28
+ },
29
+ "testContext": {
30
+ "schemaVersion": "1.0.0",
31
+ "kind": "test",
32
+ "role": "test-implementation",
33
+ "decision": "ready",
34
+ "classification": "ready",
35
+ "stageId": "stage.feature.test-implementation",
36
+ "packetPath": "artifacts/test-context-packet.txt",
37
+ "reportPath": "reports/test-context-retrieval-report.txt",
38
+ "issues": [],
39
+ "warnings": [],
40
+ "blockingIssueCodes": [],
41
+ "affectedResponsibilityIds": [],
42
+ "evaluatedFreshness": "fresh",
43
+ "evaluatedAdequacy": "sufficient",
44
+ "requiredEvidenceTruncated": "no",
45
+ "readyWithAssumptions": false,
46
+ "provenanceSummary": "resolved from populated packet/report pair",
47
+ "indexIdentity": "Z:/fixture/project"
48
+ },
49
+ "contextReady": true,
50
+ "readinessClassification": "ready",
51
+ "blockedStageNames": [],
52
+ "blockingCodes": [],
53
+ "recommendedCorrectionStage": null,
54
+ "expectedJudgeVerdict": "PASS",
55
+ "warnings": []
56
+ },
57
+ "judgeIntegrity": {
58
+ "schemaVersion": "1.0.0",
59
+ "judgeArtifactPresent": true,
60
+ "judgeVerdictParseStatus": "parsed",
61
+ "authoredJudgeVerdict": "PASS",
62
+ "expectedJudgeVerdict": "PASS",
63
+ "judgeVerdictMatchesExpected": true,
64
+ "judgeVerdictAccepted": true,
65
+ "correctionRequired": false,
66
+ "correctionBlocked": false,
67
+ "acceptedCorrectionStage": null,
68
+ "finalReportEligible": true,
69
+ "blockingCodes": [],
70
+ "acceptedCorrectionRoute": null
71
+ },
72
+ "finalReportEligibility": {
73
+ "eligible": true,
74
+ "contextReady": true,
75
+ "priorArtifactsValid": true,
76
+ "judgeIntegrity": {
77
+ "schemaVersion": "1.0.0",
78
+ "judgeArtifactPresent": true,
79
+ "judgeVerdictParseStatus": "parsed",
80
+ "authoredJudgeVerdict": "PASS",
81
+ "expectedJudgeVerdict": "PASS",
82
+ "judgeVerdictMatchesExpected": true,
83
+ "judgeVerdictAccepted": true,
84
+ "correctionRequired": false,
85
+ "correctionBlocked": false,
86
+ "acceptedCorrectionStage": null,
87
+ "finalReportEligible": true,
88
+ "blockingCodes": [],
89
+ "acceptedCorrectionRoute": null
90
+ },
91
+ "blockingCodes": []
92
+ },
93
+ "finalArtifactPresent": true,
94
+ "finalArtifactVerdict": "PASS",
95
+ "lifecycle": [
96
+ {
97
+ "artifactFile": "artifacts/architecture-context.txt",
98
+ "stageName": "architecture-context",
99
+ "fileExists": true,
100
+ "manualRecord": null,
101
+ "resolvedState": "complete"
102
+ },
103
+ {
104
+ "artifactFile": "artifacts/implementation.txt",
105
+ "stageName": "implementation",
106
+ "fileExists": true,
107
+ "manualRecord": null,
108
+ "resolvedState": "complete"
109
+ },
110
+ {
111
+ "artifactFile": "artifacts/test-implementation.txt",
112
+ "stageName": "test-implementation",
113
+ "fileExists": true,
114
+ "manualRecord": null,
115
+ "resolvedState": "complete"
116
+ },
117
+ {
118
+ "artifactFile": "artifacts/verification.txt",
119
+ "stageName": "verification",
120
+ "fileExists": true,
121
+ "manualRecord": { "state": "complete", "updatedAt": "2026-07-31T00:00:00.000Z", "source": "cli" },
122
+ "resolvedState": "complete"
123
+ },
124
+ {
125
+ "artifactFile": "artifacts/final-report.txt",
126
+ "stageName": "final-report",
127
+ "fileExists": true,
128
+ "manualRecord": null,
129
+ "resolvedState": "complete"
130
+ }
131
+ ]
132
+ }
@@ -0,0 +1,146 @@
1
+ {
2
+ "schemaVersion": "1.0.0",
3
+ "runFolder": "Z:/fixture/project/.my-dev-kit-orchestrator/runs/run-fixture-002",
4
+ "gate": {
5
+ "schemaVersion": "1.0.0",
6
+ "mode": "feature",
7
+ "contextRequired": true,
8
+ "applicableContextKinds": ["implementation", "test"],
9
+ "implementationContext": {
10
+ "schemaVersion": "1.0.0",
11
+ "kind": "implementation",
12
+ "role": "implementation",
13
+ "decision": "refresh-required",
14
+ "classification": "required-evidence-truncated",
15
+ "stageId": "stage.feature.implementation",
16
+ "packetPath": "artifacts/implementation-context-packet.txt",
17
+ "reportPath": "reports/implementation-context-retrieval-report.txt",
18
+ "issues": [],
19
+ "warnings": [],
20
+ "blockingIssueCodes": ["CONTEXT_REQUIRED_EVIDENCE_TRUNCATED"],
21
+ "primaryIssue": {
22
+ "code": "CONTEXT_REQUIRED_EVIDENCE_TRUNCATED",
23
+ "severity": "error",
24
+ "message": "Required implementation evidence was truncated.",
25
+ "priority": 1,
26
+ "correctiveAction": "Refresh implementation context.",
27
+ "evidenceTarget": "implementation-context-packet",
28
+ "stageId": "stage.feature.implementation",
29
+ "contextKind": "implementation"
30
+ },
31
+ "blockerSummary": {
32
+ "contextKind": "implementation",
33
+ "primaryCode": "CONTEXT_REQUIRED_EVIDENCE_TRUNCATED",
34
+ "primaryReason": "Required implementation evidence was truncated.",
35
+ "correctiveAction": "Refresh implementation context.",
36
+ "evidenceTarget": "implementation-context-packet",
37
+ "blockingIssueCodes": ["CONTEXT_REQUIRED_EVIDENCE_TRUNCATED"],
38
+ "supportingIssueCodes": []
39
+ },
40
+ "affectedResponsibilityIds": [],
41
+ "evaluatedFreshness": "fresh",
42
+ "evaluatedAdequacy": "insufficient",
43
+ "requiredEvidenceTruncated": "yes",
44
+ "readyWithAssumptions": false,
45
+ "provenanceSummary": "resolved from populated packet/report pair",
46
+ "indexIdentity": "Z:/fixture/project"
47
+ },
48
+ "contextReady": false,
49
+ "readinessClassification": "refresh-required",
50
+ "blockedStageNames": ["implementation"],
51
+ "blockingCodes": ["CONTEXT_REQUIRED_EVIDENCE_TRUNCATED"],
52
+ "primaryBlocker": {
53
+ "contextKind": "implementation",
54
+ "primaryCode": "CONTEXT_REQUIRED_EVIDENCE_TRUNCATED",
55
+ "primaryReason": "Required implementation evidence was truncated.",
56
+ "correctiveAction": "Refresh implementation context.",
57
+ "evidenceTarget": "implementation-context-packet",
58
+ "blockingIssueCodes": ["CONTEXT_REQUIRED_EVIDENCE_TRUNCATED"],
59
+ "supportingIssueCodes": []
60
+ },
61
+ "recommendedCorrectionStage": "implementation",
62
+ "expectedJudgeVerdict": "NEED_CONTEXT",
63
+ "warnings": []
64
+ },
65
+ "judgeIntegrity": {
66
+ "schemaVersion": "1.0.0",
67
+ "judgeArtifactPresent": true,
68
+ "judgeVerdictParseStatus": "parsed",
69
+ "authoredJudgeVerdict": "NEED_CONTEXT",
70
+ "expectedJudgeVerdict": "NEED_CONTEXT",
71
+ "judgeVerdictMatchesExpected": true,
72
+ "judgeVerdictAccepted": true,
73
+ "correctionRequired": true,
74
+ "correctionBlocked": false,
75
+ "acceptedCorrectionStage": "implementation",
76
+ "finalReportEligible": false,
77
+ "blockingCodes": [],
78
+ "acceptedCorrectionRoute": {
79
+ "verdict": "NEED_CONTEXT",
80
+ "recommendedStage": "implementation",
81
+ "routedStage": "implementation",
82
+ "routeStatus": "correction_required",
83
+ "warnings": [],
84
+ "errors": [],
85
+ "isBlocked": false,
86
+ "strictFail": false
87
+ }
88
+ },
89
+ "finalReportEligibility": {
90
+ "eligible": false,
91
+ "contextReady": false,
92
+ "priorArtifactsValid": false,
93
+ "judgeIntegrity": {
94
+ "schemaVersion": "1.0.0",
95
+ "judgeArtifactPresent": true,
96
+ "judgeVerdictParseStatus": "parsed",
97
+ "authoredJudgeVerdict": "NEED_CONTEXT",
98
+ "expectedJudgeVerdict": "NEED_CONTEXT",
99
+ "judgeVerdictMatchesExpected": true,
100
+ "judgeVerdictAccepted": true,
101
+ "correctionRequired": true,
102
+ "correctionBlocked": false,
103
+ "acceptedCorrectionStage": "implementation",
104
+ "finalReportEligible": false,
105
+ "blockingCodes": [],
106
+ "acceptedCorrectionRoute": {
107
+ "verdict": "NEED_CONTEXT",
108
+ "recommendedStage": "implementation",
109
+ "routedStage": "implementation",
110
+ "routeStatus": "correction_required",
111
+ "warnings": [],
112
+ "errors": [],
113
+ "isBlocked": false,
114
+ "strictFail": false
115
+ }
116
+ },
117
+ "blockingCodes": ["FINAL_REPORT_PRIOR_ARTIFACTS_INCOMPLETE"],
118
+ "primaryReason": "A required prior native artifact is not yet complete."
119
+ },
120
+ "finalArtifactPresent": false,
121
+ "finalArtifactVerdict": null,
122
+ "lifecycle": [
123
+ {
124
+ "artifactFile": "artifacts/architecture-context.txt",
125
+ "stageName": "architecture-context",
126
+ "fileExists": true,
127
+ "manualRecord": null,
128
+ "resolvedState": "complete"
129
+ },
130
+ {
131
+ "artifactFile": "artifacts/implementation.txt",
132
+ "stageName": "implementation",
133
+ "fileExists": true,
134
+ "manualRecord": null,
135
+ "resolvedState": "blocked",
136
+ "blockingReason": "Required implementation evidence was truncated."
137
+ },
138
+ {
139
+ "artifactFile": "artifacts/final-report.txt",
140
+ "stageName": "final-report",
141
+ "fileExists": false,
142
+ "manualRecord": null,
143
+ "resolvedState": "missing"
144
+ }
145
+ ]
146
+ }