This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
release-scope reports, per GitLab service, every change between production and the default branch as one JSON
report. CONTEXT.md owns the vocabulary; read it before naming a concept in code, a test name, or an
issue title.
just (task runner) and uv (package manager). The justfile is the source of truth —
just --list, or read it. Never run bare ruff check: [tool.ruff] sets fix = true and unsafe-fixes = true.
_use_case.py drives one run; _gitlab.py and _jira.py are the only modules that speak HTTP; _rows.py is pure and
turns the range plus merge requests into rows; _render.py is pure and turns a report into the Markdown page. Tests
mock GitLab and Jira only with respx routes (pytest-httpx2): the gitlab and jira fixtures in tests/conftest.py
declare one named static route per call of the scenario in tests/payloads.py. A test changes a response by re-mocking a named route; add no fakes, callbacks,
or stubs.
The package must stay free of any company's hostnames, group paths, job names, or Jira project keys: every such value comes from settings. The repo is public.
Every link in README.md must be absolute: https://github.com/modern-python/<repo>/blob/main/<path>,
or .../tree/main/<path> for a directory. Never a relative path: README.md is also the PyPI long
description, and PyPI does not rewrite relative links, so a relative one 404s on the package page.
skills/release-scope/SKILL.md describes the CLI flags, exit codes, and report fields
for agents, and pins the minor version it describes. Update it, and its version range, in the same change as any of those.
GitHub issues on modern-python/release-scope, via gh. See docs/agents/issue-tracker.md.
The five canonical roles, each label string equal to its name. See docs/agents/triage-labels.md.
Single-context: CONTEXT.md and docs/adr/ at the repo root. See docs/agents/domain.md.