What problem does it solve? Jakarta Faces (JSF) projects accumulate subtle mistakes — wrong scopes, broken ajax render targets, misplaced XHTML files, hand-rolled code duplicating built-ins — that cause hard-to-diagnose bugs like ViewExpiredException and uninvoked actions. This Skill audits your views, backing beans, and configuration against a curated rule set. ## Core Features & Use Cases - Version-aware review: Detects both the runtime and declared Faces versions first, then validates every recommendation against the APIs actually available in that version. - Structured checklist audit: Covers XHTML/Facelets rules, directory structure exposure risks, backing bean scope and CDI usage, web.xml/faces-config.xml descriptor versions, plus PrimeFaces and OmniFaces specifics. - Severity-ranked report: Groups findings by file with file/line, violated rule, severity (error/warning/info), and a concrete fix that never introduces new violations. - Use Case: Point it at a legacy JSF project before an upgrade to find superseded constructs (e.g., PhaseListener message shuttling replaceable by Flash.keepMessages) and security exposures like composite components outside WEB-INF. ## Quick Start Ask the assistant to run /faces-review on your project directory to audit all XHTML views and backing beans against Jakarta Faces best practices.