INNER CODE UNIT · Go
buildReport
cli/cli · .github/skills/cli-exercise/tool/internal/evidence/main.go:247
func buildReport(ctx context.Context, skillRoot string, opts options, renderMedia renderFunc) (report, error) {
workspace, err := guardWorkspace(opts.runDir, skillRoot)
if err != nil {
return report{}, err
}
contractPath, err := containedFile(workspace, "contract.json")
if err != nil {
return report{}, err
}
var contract contract
raw, err := cliutil.ReadJSON(contractPath, 1<<20, &contract)
if err != nil {
return report{}, err
}
if contract.CaseID == "" || !slices.Contains([]string{"exact", "explore"}, contract.Mode) {
return report{}, fmt.Errorf("contract must identify its original case and fidelity mode")
}
sum := sha256.Sum256(raw)