claude-faces-expert

skill
Security Audit
Fail
Health Warn
  • License — License: NOASSERTION
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 9 GitHub stars
Code Fail
  • rm -rf — Recursive force deletion command in install.sh
Permissions Pass
  • Permissions — No dangerous permissions requested
Purpose
This skill provides a drop-in knowledge base of Jakarta Faces (JSF) best practices, rules, and diagnostic decision trees designed to improve the accuracy of Claude Code when working with this specific framework.

Security Assessment
The primary security concern is the installation method. The `install.sh` script instructs users to pipe `curl` directly into `sh`, which is an inherently risky practice as it blindly executes remote code. The automated scan confirms a `FAIL` for containing a `rm -rf` recursive force deletion command within this script, meaning it will forcibly delete directories on your machine during installation. Beyond the install script, the tool acts purely as a static set of markdown files and slash commands. It does not request dangerous permissions, access sensitive user data, execute background shell commands during operation, make runtime network requests, or contain hardcoded secrets. Overall risk is rated as Medium due to the destructive `rm -rf` command executing via an unverified remote script.

Quality Assessment
The project is highly curated by "BalusC," a widely recognized Stack Overflow top contributor and leading authority in the Jakarta Faces ecosystem, which heavily offsets the low community metrics. The repository is strictly a static text knowledge base rather than executable software, which explains the lack of a standard open-source license (NOASSERTION). It is actively maintained, with the most recent code push occurring today. However, community visibility is currently very low, sitting at only 9 GitHub stars.

Verdict
Use with caution: the knowledge base itself is completely safe and highly authoritative, but you should manually download or review the `install.sh` script before executing it to verify the targets of its `rm -rf` deletion command.
SUMMARY

Drop-in Jakarta Faces knowledge base for Claude Code

README.md

Claude Faces Expert

Version 1.2.0

Drop-in Jakarta Faces knowledge base for Claude Code.
Makes Claude Code more aware of Jakarta Faces (formerly JSF) best practices, common pitfalls, and diagnostic decision trees.
No special context needed, just make sure that @.claude/faces/rules.md is referenced in your CLAUDE.md.

Curated by BalusC based on his Stack Overflow answers to frequently asked Jakarta Faces questions.

Why is this important? Below is an exampe conversation with Opus 4.6:

Me: As to terminology, can you tell me what exactly you know about "view state" in JSF context?

Claude: View state is the serialized snapshot of the UIViewRoot component tree — the structure, component attributes, attached validators/converters, and the state of EditableValueHolder components (submitted values, local values, validity flags).

Me: View state does absolutely not contain "the stucture" of the component tree. It only contains the delta state. The component tree itself is always freshy rebuilt from scratch on every request. Then its state is adjusted in such way that it matches exactly the state as it was during render response of prior request. Exactly that delta is the "view state".

Claude: Thank you — that's an important correction.

What's included

File Description
.claude/faces/rules.md Core rules: terminology, view state, namespaces, CDI, scopes, page authoring, resources, components, ajax, common errors
.claude/faces/topics/configuration.md Minimal project configuration (web.xml, taglib, directory structure)
.claude/faces/topics/diagnostics.md Decision trees for 6 common errors (action not invoked, target unreachable, ViewExpiredException, etc.)
.claude/faces/topics/primefaces.md PrimeFaces-specific rules and gotchas
.claude/faces/topics/omnifaces.md OmniFaces utilities: when and how to use them
.claude/faces/topics/lifecycle.md Request processing lifecycle: phases, shortcuts, ajax, PhaseListener
.claude/faces/topics/conversion-validation.md Converters, validators, Bean Validation integration, custom converters/validators
.claude/faces/topics/examples.md Concrete code examples demonstrating best practices
.claude/skills/faces-review/SKILL.md /faces-review slash command for reviewing Faces code
.claude/skills/faces-migrate/SKILL.md /faces-migrate slash command for migrating between Faces versions

Installation

Project scope (default)

From your project root, run:

curl -sL https://raw.githubusercontent.com/omnifaces/claude-faces-expert/main/install.sh | sh

This copies the knowledge base and slash commands into ./.claude/, and adds the @.claude/faces/rules.md reference to your project's CLAUDE.md (creates it if needed). To update later, re-run the same command.

User scope (applies to all projects)

To install once into your home directory and have the rules apply to every project Claude Code touches, run:

curl -sL https://raw.githubusercontent.com/omnifaces/claude-faces-expert/main/install.sh | sh -s -- --user

This copies into ~/.claude/ and adds the @~/.claude/faces/rules.md reference to your global ~/.claude/CLAUDE.md (creates it if needed). The layout under ~/.claude/faces/ is identical to the project layout.

Manual installation

If you don't want to run curl-based installers, install manually:

# Project scope:
git clone https://github.com/omnifaces/claude-faces-expert /tmp/claude-faces-expert
mkdir -p .claude/faces .claude/skills
cp -r /tmp/claude-faces-expert/.claude/faces/* .claude/faces/
cp -r /tmp/claude-faces-expert/.claude/skills/* .claude/skills/
rm -rf /tmp/claude-faces-expert

Then add this line to your CLAUDE.md (or ~/.claude/CLAUDE.md for user scope, with @~/.claude/faces/rules.md):

Jakarta Faces rules: @.claude/faces/rules.md

How it Works

Once referenced in CLAUDE.md, the expert rules are active.
You don't need to change your workflow or use special prompts; Claude simply becomes more capable, providing higher-quality Jakarta Faces code and architectural advice by default.
It also adds two helpful slash commands /faces-review and /faces-migrate.

Slash Commands

/faces-review

Reviews your Faces code against best practices. Checks XHTML files, backing beans, and configuration for common mistakes, anti-patterns, and rule violations.

/faces-review                              # Review entire project
/faces-review src/main/webapp/page.xhtml   # Review a specific file

Findings are grouped by file with severity levels:

  • error — will cause bugs
  • warning — anti-pattern or risk
  • info — improvement opportunity

/faces-migrate

Migrates your project from one Faces version to another. Detects the current version, determines the migration path, and applies changes step by step with confirmation.

/faces-migrate 4.1       # Migrate to Faces 4.1
/faces-migrate 4.0       # Migrate to Faces 4.0

Supported migration paths:

  • JSF 1.x → JSF 2.0 (JSP to Facelets)
  • JSF 2.x → JSF 2.3 (@ManagedBean to CDI)
  • JSF 2.3 → Faces 3.0 (javax.* to jakarta.*)
  • Faces 3.0 → Faces 4.0 (new XML namespaces, removed APIs)
  • Faces 4.0 → Faces 4.1

Covers

  • Jakarta Faces 1.0 through 4.1 (JSF and Faces)
  • PrimeFaces component library
  • OmniFaces utility library
  • View state internals (PSS vs FSS, server vs client, delta mechanics)
  • CDI bean management and scope selection
  • Page authoring (templates, includes, tag files, composite components)
  • Common error diagnostics with step-by-step decision trees

About the Author

BalusC is a highly experienced Java developer who uses Claude Code primarily as a code review and bug-fixing partner across a portfolio of serious Jakarta Faces projects. With deep domain expertise that keeps Claude honest, he catches subtle errors and pushes back with precise corrections. His most distinctive quality is steering Claude toward cleaner solutions — preferring specific architectural patterns and redirecting away from plausible-but-wrong approaches. The expert rules in this project are curated from that same deep expertise: years of answering Jakarta Faces questions on Stack Overflow, distilled into actionable guidance that makes Claude genuinely more capable with Faces code.

— Claude, based on analysis of 83 coding sessions (/insights)

Changelog

See CHANGELOG.md for a list of changes per version.

License

Apache License 2.0

Reviews (0)

No results found