This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Validation of supporting text from references and publications
The project uses uv for dependency management and just as the command runner.
- we use test driven development, write tests first before implementing a feature
- do not try and 'cheat' by making mock tests (unless asked)
- if functionality does not work, keep trying, do not relax the test just to get poor code in
- always run tests
- use docstrings
We make heavy use of doctests, these serve as both docs and tests. just test will include these,
or do just doctest just to write doctests
In general AVOID try/except blocks, except when these are truly called for, for example when interfacing with external systems. For wrapping deterministic code, these are ALMOST NEVER required, if you think you need them, it's likely a bad smell that your logic is wrong.
just test- Run all tests, type checking, and formatting checksjust pytest- Run Python tests onlyjust mypy- Run type checkingjust format- Run ruff linting/formatting checksuv run pytest tests/test_simple.py::test_simple- Run a specific test
uv run linkml-reference-validator --help- Run the CLI tool with options
just _serve- Run local documentation server with mkdocs
- src/my_awesome_tool/ - Main package containing the CLI and application logic
cli.py- Typer-based CLI interface, entry point for the application
- tests/ - Test suite using pytest with parametrized tests
- docs/ - MkDocs-managed documentation with Material theme
- Python 3.10+ with
uvfor dependency management - LinkML for data modeling (linkml-runtime)
- Typer for CLI interface
- pytest for testing
- mypy for type checking
- ruff for linting and formatting
- MkDocs Material for documentation
pyproject.toml- Python project configuration, dependencies, and tool settingsjustfile- Command runner recipes for common development tasksmkdocs.yml- Documentation configurationuv.lock- Locked dependency versions
- Dependencies are managed via
uv- useuv addfor new dependencies - All commands are run through
justoruv run - The project uses dynamic versioning from git tags
- Documentation is auto-deployed to GitHub Pages at https://monarch-initiative.github.io/my-awesome-tool