@@ -30,6 +30,41 @@ marker rules for **mellea**.
3030- ` --apply ` — produce report and apply fixes without asking.
3131- ` --dry-run ` — report only, do not offer to apply.
3232
33+ Single-file use: skip the triage phase (Step 0) entirely — deep-read the file directly and proceed from Step 1.
34+
35+ ## Modes of use
36+
37+ This skill has two modes. Choose based on what the user asked:
38+
39+ ### Audit mode (default)
40+ User wants markers classified or fixed — for a new test, an existing file, or a
41+ pre-commit check. Follow the full Audit Procedure (Steps 0–4).
42+
43+ ### Diagnostic mode
44+ User wants to know ** why** a specific test is not running, is being skipped, or
45+ is consuming unexpected resources. Do NOT produce an audit report. Instead:
46+
47+ 1 . ** Read the test** — identify its markers and any predicate decorators.
48+ 2 . ** Check the default filter** — read ` pyproject.toml ` ` [tool.pytest.ini_options] `
49+ ` addopts ` . The project default is ` -m "not slow" ` . If the test has ` slow ` , it
50+ is excluded from a plain ` uv run pytest ` run.
51+ 3 . ** Check backend auto-skip** — read ` test/conftest.py ` ` pytest_configure ` and
52+ the ` pytest_collection_modifyitems ` hook. Backend markers (` ollama ` , ` huggingface ` ,
53+ etc.) trigger auto-skip when the backend is unavailable. Check whether the
54+ relevant service or credentials are present on the user's machine.
55+ 4 . ** Evaluate predicates** — if the test has a predicate decorator (` require_gpu ` ,
56+ ` require_api_key ` , ` require_ram ` , etc.), read ` test/predicates.py ` and explain
57+ what condition would cause the skip. For ` require_gpu(min_vram_gb=N) ` , compare N
58+ against the system's detected VRAM (run ` get_system_capabilities() ` logic or
59+ check ` sysctl hw.memsize ` on Apple Silicon / ` nvidia-smi ` on CUDA).
60+ 5 . ** Report directly** — answer "this test is skipped because X" with the specific
61+ condition, the value it evaluated to, and how to override if appropriate (e.g.
62+ ` uv run pytest test/path/test_foo.py ` bypasses the ` -m "not slow" ` default filter).
63+
64+ For resource overload (test consuming too much GPU/RAM): classify the test's
65+ resource gates using the VRAM heuristics in Part 2, compare against what the
66+ test actually loads, and report whether the gate is correctly set or too loose.
67+
3368## Project References
3469
3570Read these before auditing — they are the authoritative source for marker conventions:
0 commit comments