testsAndMisc/docs/superpowers/contracts/code-tutor-2026-07-10.json
Krzysztof kuhy Rudnicki 2d0d69b461 Add code_tutor: interactive codebase-learning CLI
New python_pkg/code_tutor package that turns an unfamiliar codebase into
an interactive lesson: analyse code into items (_analyzer), order them
dependency-first (_plan_builder), pose reimplement challenges
(_challenge + _challenge_support), verify user implementations with tests
and coverage (_verifier), track progress (_progress/_session), and offer
local-LLM hints (_llm), driven by a Typer/Rich CLI (cli).

- meta/pyproject.toml + .pre-commit-config.yaml + meta/requirements.txt:
  add anthropic/rich/typer deps, a cli.py per-file-ignore (Typer B008 etc),
  and code_tutor-specific ruff/pylint/mypy tuning.
- _challenge.py and its tests are split across _challenge_support.py and
  test_challenge_part2/part3.py to stay under the 500-line file cap.

Verification: pytest 631 passed at 100% line+branch coverage; every file
<=500 lines; pre-commit (ruff ALL, mypy strict, pylint 10/10, bandit,
evidence + multi-file contract) green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017RRCdR4D8SaVrN2xraMQxM
2026-07-11 00:15:46 +02:00

18 lines
1.1 KiB
JSON

{
"title": "code_tutor interactive codebase-learning CLI",
"objective": "Ship a new python_pkg/code_tutor package that turns an unfamiliar codebase into an interactive lesson: analyse code into items, order them dependency-first, pose reimplement challenges, and verify user implementations with tests and coverage, with optional local-LLM hints.",
"acceptance_criteria": [
"Analyzer extracts functions/classes as CodeItems from a codebase.",
"Plan builder orders items dependency-first and groups them into sessions.",
"Challenge flow discovers matching user tests and drives the attempt loop.",
"Verifier runs the user's implementation against tests and enforces a coverage bar.",
"CLI (Typer/Rich) exposes the tutor commands.",
"Whole package passes ruff select=ALL, mypy strict, pylint 10/10, and 100% line+branch test coverage."
],
"out_of_scope": [
"A hosted/multi-user service.",
"Bundling or managing the local LLM runtime itself."
],
"verifier": "python -m pytest python_pkg/code_tutor/tests/ --cov=python_pkg.code_tutor --cov-branch (100%) + pre-commit (ruff/mypy/pylint/bandit)"
}