Agent Readiness Roadmap

This roadmap tracks the work needed to make ChromoSort straightforward for coding agents, assistant chats, and open-source automation harnesses to inspect, modify, test, and hand off safely. The target audience includes Codex, Claude, Gemini, Jewel/Jules, Copilot, Aider, OpenHands, and any model-plus-harness workflow that can read repository files and run commands.

The goal is not to let agents make biological calls automatically. The goal is to give every agent the same repository map, install choices, check commands, fixtures, and evidence boundaries so implementation work is reproducible.

Design Stance

ChromoSort should support multiple install and execution styles:

Agent-facing commands should avoid requiring external aligners for routine test work. The synthetic fixtures under tests/data/ are the default local contract.

Readiness Phases

Phase Status Outcome
1. Save canonical roadmap and expose it in docs. Done This page records the plan and links from the public docs.
2. Add a harness-neutral command surface. Done Makefile and Pixi tasks expose test, smoke, diff-check, and agent-check.
3. Add agent adapter files. Done Common agent entry files point back to AGENTS.md as the canonical instruction source.
4. Add code CI beyond documentation deployment. Done GitHub Actions runs unit tests, CLI smoke checks, and whitespace checks on code changes.
5. Add contribution templates for agent-ready changes. Done Issue and PR templates ask for fixtures, checks, docs, and evidence-boundary notes.
6. Add richer smoke or golden workflow fixtures. Done tests/test_agent_smoke_workflow.py exercises sort, plot, fix, eval-all, scaffold, and gapfill apply on synthetic fixtures.
7. Add conservative linting. Done Ruff is configured with a narrow high-signal rule set and wired into Make, Pixi, and CI.
8. Add optional packaging checks. Done make package-check and pixi run package-check build sdist/wheel without build isolation.
9. Decide Pixi lockfile policy. Done Commit pixi.lock when generated or updated so Pixi users get a reproducible first-class environment.

Canonical Agent Contract

The canonical instruction file is AGENTS.md. Adapter files for individual tools should stay short and should not fork the rules. If behavior changes, update AGENTS.md first, then refresh adapters only when needed.

Agents should:

Shared Checks

Routine local verification:

make agent-check

Equivalent pieces:

make diff-check
make lint
make smoke
make test
make package-check

Pixi equivalents:

pixi run agent-check
pixi run smoke
pixi run test

Plain Python equivalent:

git diff --check
ruff check .
PYTHONPATH=src python -m chromosort.cli --help
python -m unittest discover -s tests -v
python -m build --sdist --wheel --no-isolation

Docs-only changes should at least run git diff --check. Public documentation page additions should also update docs/_config.yml, docs/index.md, and any README/status/changelog pointers that should expose the new page.

Agent Task Recipes To Add

Agent-facing recipes live in Agent Task Recipes. They cover:

Each recipe should name the likely source files, docs, fixtures, and tests to touch, plus the smallest useful verification command.

Pixi Lockfile Policy

Commit pixi.lock whenever pixi.toml changes and Pixi can solve the environment. The lockfile makes the Pixi path as concrete as the mamba/conda path while still keeping environment.yml as a readable conda-compatible environment specification.

If a contributor cannot run Pixi locally, they should update pixi.toml, run the Make/Python checks they can run, and note that the lockfile needs refresh in the PR checklist.

Biological Decision Boundaries

Agents may change code, tests, docs, synthetic fixtures, CI, and packaging metadata. They should not silently make dataset-specific biological decisions. Any sequence-changing recommendation for real data should identify the exact FASTA, alignment, graph/read evidence, review table, and command path involved.

When evidence is ambiguous, ChromoSort should keep the ambiguity visible through reports, review tables, dashboards, or explicit user decisions rather than guessing.