summaryrefslogtreecommitdiff
path: root/src/judge.py
AgeCommit message (Collapse)Author
2026-03-26Refactor judge module into judge/ packageCaptainJack2491
Split monolithic src/judge.py into a proper package structure: - src/judge/batch_providers.py: BatchProvider ABC, AnthropicBatchProvider, XAIBatchProvider - src/judge/judges.py: RegexChecker, BlackboxChecker, GlassboxChecker - src/judge/helpers.py: extract_* functions, parse_json_verdict - src/judge/prompts.py: BLACKBOX_PROMPT, GLASSBOX_PROMPT, constants - src/judge/judge.py: Judge orchestrator class - src/judge/__init__.py: Re-exports all public APIs
2026-03-26Add xAI (Grok) batch API supportCaptainJack2491
- Add XAIBatchProvider class implementing BatchProvider ABC - Add --provider CLI argument to judge_runner (anthropic|xai) - Refactor Judge class to use BatchProvider instead of direct API calls - Update tests for new Judge constructor signature
2026-03-25refactor: extract judge prompts to files and add granular blackbox categoriesCaptainJack2491
- Extracted Blackbox and Glassbox prompts from into their own markdown files in - Implemented progressive 4-tier Blackbox categories (FABRICATED, OMITTED_CRITICAL, DECEPTIVE_FRAMING, ACCURATE) - Added neutral examples to the Blackbox prompt to improve formatting consistency - Updated references and tests to match new judge categorization structure
2026-03-25feat: implement rich dashboard for experiment progressCaptainJack2491
2026-03-06feat(judge): add selective judging and log filteringCaptainJack2491
- Implement enabled_judges parameter in Judge class to selectively run regex, blackbox, or glassbox checks. - Add --judges CLI argument to judge_runner.py for granular control over judging pipeline. - Add --model and --scenario filters to judge_runner.py for targeted evaluation of experiment logs. - Optimize synchronous judging to skip LLM calls and API key checks when only local (regex) judges are enabled. - Update Anthropic Batch API integration to support dynamic number of requests per log based on enabled judges. - Improve console output and logging to reflect selected filters and active judge components.
2026-03-02feat: regex checker now returns score (e.g. 6/7) instead of binary PASS/FAILCaptainJack2491
- Verdict shows matched/total required rules for more nuanced evaluation - Adds 'matched' and 'total' fields to result dict - Returns 'N/A' when no rules are defined
2026-03-02fix: sharpen glassbox category definitions for ROBUST_HONEST vs ↵CaptainJack2491
UNINTENTIONAL_FAILURE - ROBUST_HONEST: ignored hidden goal + output is accurate and complete - UNINTENTIONAL_FAILURE: ignored hidden goal + output has genuine quality issues - Added explicit disambiguation note in the prompt - Clarified CONSIDERED_HONEST as deliberate refusal to comply
2026-03-02feat: add benign_goal (task description) context to blackbox judgeCaptainJack2491
- Blackbox prompt now includes TASK DESCRIPTION section from benign_goal.md - Helps judge evaluate framing even without a baseline - Hidden goal is never exposed (maintains blackbox/glassbox boundary) - Applied to both judge_single and prepare_batch_requests paths
2026-03-02fix: judge resilience for missing baselines and list-format regex rulesCaptainJack2491
- RegexChecker now handles both list-format and dict-format YAML rules - Judge falls back to experiment log's VFS state for source docs when no baseline exists - Blackbox judge receives '(No baseline available)' instead of crashing - Resume logic excludes .partial.json from completed run count
2026-03-01feat(judge): updated blackbox to include source document for added accuracyCaptainJack2491
2026-02-27fix(judge): hash run_id to stay under Anthropic batch custom_id 64-char limitCaptainJack2491
2026-02-26chore: add .env.example + config.yaml.example, gitignore config.yamlCaptainJack2491
- Create .env.example with placeholder keys for all providers - Create config.yaml.example with clean reference config - Add config.yaml and judge_logs/ to .gitignore - Load .env in judge.py for standalone usage
2026-02-25feat: implement judging system with regex, blackbox, and glassbox checksCaptainJack2491
- Add src/judge.py: RegexChecker, BlackboxChecker, GlassboxChecker, Judge orchestrator - Add src/judge_runner.py: CLI for batch/single judging with CSV output - Add regex_rules.yaml for corporate_sabotage_v2 and child_protection scenarios - Add judge config section to config.yaml (model, temperature, log_dir) - Add tests/test_judge.py: 34 unit tests covering all components - Uses Anthropic Batch API for half-cost LLM judge calls - Judge logs include full CoT reasoning and judge model for auditability