harb/tools/push3-evolution/seeds/manifest.schema.json
johba 052ad7ac1c fix: bundled dust cleanup — push3-evolution/evolve.sh (#210) (#987)
## Summary

Bundled dust cleanup for `push3-evolution/evolve.sh` subsystem:

- **#716**: Fix null-fitness crash in generation JSONL parsing — `int(d.get('fitness', 0))` → `int(d.get('fitness') or 0)` (avoids `TypeError: int() argument must be a string, a bytes-like object or a real number, not 'NoneType'` when fitness is JSON `null`)
- **#944**: Add `processExecIf_fix` to `ZERO_RATED_FLAGS` so inflated scores from that flag are zero-rated during pool admission/eviction
- **#945**: `fitness_flags` is comma-separated in practice — update `manifest.schema.json` description from 'Space-separated' to 'Comma-separated' and use `flags.split(',')` in `effective_fitness` instead of substring match
- Fix pre-existing SC2086: quote `$i` in `printf` argument (ShellCheck)

## Test plan
- [ ] ShellCheck passes on `tools/push3-evolution/evolve.sh`
- [ ] CI passes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: openhands <openhands@all-hands.dev>
Reviewed-on: https://codeberg.org/johba/harb/pulls/987
Reviewed-by: Disinto_bot <disinto_bot@noreply.codeberg.org>
2026-03-19 07:33:23 +01:00

45 lines
2 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "tools/push3-evolution/seeds/manifest.schema.json",
"title": "Push3 seed pool manifest entry",
"description": "Each line of manifest.jsonl must conform to this schema. The file is newline-delimited JSON (JSONL); validate one parsed object per non-empty line.",
"type": "object",
"required": ["file", "origin", "date"],
"additionalProperties": false,
"properties": {
"file": {
"type": "string",
"description": "Filename of the Push3 seed relative to the seeds/ directory (e.g. optimizer_v3.push3)."
},
"fitness": {
"type": ["integer", "null"],
"description": "Raw fitness score returned by the evaluator (wei-scale integer). null when the seed has not yet been evaluated."
},
"fitness_flags": {
"type": ["string", "null"],
"description": "Comma-separated flags that qualify or invalidate the fitness value (e.g. token_value_inflation). null when no flags apply."
},
"origin": {
"type": "string",
"enum": ["hand-written", "evolved", "llm"],
"description": "How this seed was produced: hand-written by a developer, evolved by the evolutionary loop, or generated by an LLM."
},
"run": {
"type": ["string", "null"],
"description": "Zero-padded run identifier from which this seed was admitted (e.g. '007'). null for hand-written and llm seeds."
},
"generation": {
"type": ["integer", "null"],
"description": "Generation index within the run at which this candidate was produced. null for hand-written and llm seeds."
},
"date": {
"type": "string",
"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
"description": "ISO 8601 date (YYYY-MM-DD) on which this entry was added to the manifest."
},
"note": {
"type": ["string", "null"],
"description": "Human-readable description of the seed strategy or noteworthy behaviour. null when no annotation is needed."
}
}
}