09.03.01 — Review skills#

Static reads, surface findings. A large family. Lets the AI review its project systematically.

Listing (potentially non-exhaustive)#

SkillTarget
review-spec-gapsClarification questions on the FRDs
review-watcher-misuseVerifies the “negative-only” principle of watcher.report(...)
review-compartmentalisation-leaksDetects URLs, selectors, magic numbers in wrong places
review-dead-codeDetects unused connectors / POMs / scenarios / suites / fragments / constants
review-reportClassifies each FAIL / SKIP of an execution
review-type-ignoreAudits # type: ignores (are they justified?)
review-match-candidatesSpots places where a match (Python, pattern matching) could be used instead of if elif elif if if elif
review-unverified-transitionsVerifies that every page transition has a verify
review-submit-dispatchersAudits input-confirmation methods (click vs enter key…)
review-comment-driftDetects comments that have drifted from the code
review-suite-stabilityEvaluates a suite’s stability (proportion of retries, transient_errors hits)
review-intent-collisionsDetects tests that overwrite each other (conflicting intents) and asks/proposes clarifications
review-watcher-emissionsAudits watcher emissions (volume, dedup, relevance)
review-hierarchy-namingAudits the test-hierarchy naming (TestCycle / TestCampaign / TestSuite / Test) for the lazy-naming antipattern where a child carries the parent’s name

review-dead-code#

input  : test base
output : list of unused elements (connectors / POMs / scenarios / fragments / constants)
         + per-element recommendation:
            - delete
            - move to incubator (<root-source>/incubator/, dependency tree preserved)
            - keep (justify)

review-report#

input  : a recent execution (logs + reports)
output : per-test classification:
            - PASS                  (nothing to do)
            - SKIP                  (why?)
            - intentional gap FAIL  (G-DATA-*, G-SEC-*, ...)
            - cross-browser FAIL    (B-BROWSER-*)
            - transient FAIL        (A-ENV-*)
            - regression            ⚠️ ALERT

review-watcher-misuse#

input  : all watcher.report(...) calls
output : list of reports that look positive ("success", "completed", "ok", ...)
         → recommendation: remove or rephrase as negative

review-comment-drift#

input  : every code comment
output : list of comments that no longer match the adjacent code
         (typical: comment mentions foo, code mentions bar)

Helps remove stale comments.
Teach the pattern, not the symptom.”

review-compartmentalisation-leaks#

input  : all source code
output : detected leaks:
            - inline URLs in scenarios/connectors → suggests moving to constants/
            - selectors inside methods → suggests moving to top of POM
            - magic numbers in methods → suggests moving to constants

CLAUDE.md rules:

  • URLs in src/constants/urls.py, never inline.
  • Selectors at the top of POM code.
  • Etc.

Role#

  1. Read the code (and sometimes the last execution).
  2. Categorize findings.
  3. Suggest actions.
  4. Don’t modify the code directly.
  5. The human decides.