Skip to content

Latest commit

 

History

History
97 lines (65 loc) · 3.05 KB

File metadata and controls

97 lines (65 loc) · 3.05 KB

Contributing

We welcome contributions.

Adding an Agent

Want to evaluate a new coding agent? The framework is designed for this.

Requirements

  1. Implement the Agent interface from src/slop_code/agent_runner/agent.py
  2. Define lifecycle methods: setup(), run(), reset(), cleanup()
  3. Create an agent configuration YAML in configs/agents/
  4. Add setup documentation in docs/agents/

Resources

Adding a Problem

Contribute new evaluation problems to expand the benchmark. The process has three steps: design your problem, implement it, then validate and submit.

Step 1: Design Your Problem

Start with a full problem concept, then break it into checkpoints. Good problems test whether agents can write flexible, maintainable code that handles progressive requirements.

Step 2: Implement Your Problem

Turn your design into code with test cases, loader, and verifier.

Step 3: Validate & Submit

Ensure your problem works and submit a PR.

Quick Reference

Component Description
config.yaml Problem configuration with inline checkpoint definitions
checkpoint_N.md Specification for each checkpoint
tests/test_checkpoint_N.py Pytest tests for each checkpoint
tests/conftest.py Shared pytest fixtures
tests/data/checkpoint_N/ Test case data (core, hidden, errors)

Development

Setup

uv sync

Testing

uv run pytest -q                           # Run all tests
uv run pytest tests/path/to/test_file.py   # Run specific test

Linting

uv run ruff check .   # Lint
uv run isort .        # Format imports

Code Standards

  • Line length: 80 characters
  • Use from __future__ import annotations in all modules
  • Use pathlib (Path) instead of os.path
  • Type all function signatures
  • Use Pydantic models for configuration
  • Use structlog.get_logger(__name__) for logging

Getting Help

uv run slop-code --help

Or look at the documentation.