research-document
AI-ROS Evaluation Tools
AI-ROS Evaluation Tools
evalctl.py validates task contracts and calibrates deterministic graders against known probe outcomes. It uses only the Python standard library.
Commands
python3 tools/evaluation/evalctl.py validate
python3 tools/evaluation/evalctl.py calibrate
python3 tools/evaluation/evalctl.py all
python3 tools/evaluation/evalctl.py grade --task ET-004-P01 --outcome complete
python3 tools/evaluation/evalctl.py prepare --output /path/to/new/disposable-directory
python3 tools/evaluation/evalctl.py repo-audit
Interpretation
validatechecks fixture contracts and required probe outcomes.calibratecompares grader classifications with predeclared expected classes.gradeevaluates one outcome and returns a nonzero status when it is not complete/valid.prepareexports blind agent-readable fixtures without expected outcomes or grader code. It refuses to overwrite an existing task directory.repo-auditfails when Git tracks paths that differ only by letter case, when authored artifacts reuse a stable identifier, when an explicit local Markdown link is broken, or when frontier record/index/graph identifiers disagree. It also reports metadata adoption by artifact class and diagnoses unresolved declared relationship targets without enforcing full legacy migration.allruns task validation, probe calibration, and the repository case-collision audit.
The research-integrity validator can also write its machine-readable inventory:
python3 tools/repository/validate_research_integrity.py \
--inventory data/validation/research-integrity-inventory.json
Calibration fixtures under research/evaluation/fixtures/*/{base,outcomes}/ are
excluded from global identifier collision checks because those snapshots
intentionally preserve the source artifact identifier.
Passing calibration proves only that the grader distinguishes the supplied probes. It does not prove task validity, grader generalization, or agent capability.
Safety
The current fixtures contain no secrets, execute no untrusted code, make no network requests, and modify no external systems. Future agent runners must use disposable directories and separate agent permissions from grader permissions.