Fix flaky Ruby RSpec tests in Canvas LMS. Classifies failure patterns, applies documented fixes from the KB, and drives the full batch workflow.
Grade a single Canvas request test (`it` block) against the Canvas request-test rules. Returns a pass/fail grade and the list of failing rules with fixes. Report-only — no edits made.
Convert Canvas controller specs (spec/controllers/*) into request specs by rewriting action-based calls to URL-based calls. Use this when migrating a *_controller_spec.rb to the request style (`type: :request`). After the mechanical port, the skill enters Grading mode by default — pass `--no-grading` to skip.
Use this skill to write a single Rails request test for Canvas LMS from a Given/When/Then user scenario. The skill enforces opinionated rules to write readable, isolated, thorough, explicit tests that assert behavior over implementation.
Audit a directory of Canvas selenium tests, classify each `it` block (KEEP / DELETE / PARTIAL / WRITE NEW), verify whether equivalent lower-level coverage already exists, and emit a CSV that a downstream code-modification skill can act on. Use when the user asks to trim, prune, audit, or migrate selenium tests in a specific directory.
Extract behavioral contracts (Given/When/Then) from Selenium `it` blocks. Accepts a spec file, directory, or manual_review.csv. Output CSV is consumed by selenium-coverage-quality to score assertion-level coverage.
Run a selenium spec directory twice — once on the current branch, once with files restored from a base ref — and produce a line-level coverage diff. Use after selenium-trim to verify that deleted tests provided no unique coverage. Also useful standalone to baseline coverage before starting a trim pass.
Score assertion-level coverage quality for Selenium behavioral contracts extracted by selenium-behavior-extract. For each Given/When/Then contract, finds existing lower-layer tests and classifies coverage as STRONG, WEAK, or GAP. Output CSV drives selenium-gap-filler.