What problem does it solve? Working with the Liferay Portal codebase is hard because it is huge, version-dependent, and never at a fixed path. This Skill resolves the correct source checkout for each session, orients on the version-specific layout, and provides proven search patterns and build commands so questions about modules, portlets, OSGi components, and Service Builder entities get answered against the real code. ## Core Features & Use Cases - Dynamic source resolution: Locates the liferay-portal checkout as a sibling of the current workspace, asks before using an alternate path, and bootstraps a shallow single-commit clone only after user confirmation. - Codebase navigation patterns: Provides find/grep recipes for locating classes, portlets, OSGi @Component registrations, Service Builder service.xml entities, and configuration properties across modules/, portal-impl/, portal-kernel/, and portal-web/. - Build and customization guidance: Maps Ant vs Gradle build commands, deploy/buildService/formatSource tasks, and a cheat sheet for common tasks like adding portlets, overriding services, and adding entities. - Use Case: A developer asks "how does Liferay implement asset rendering for Documents?" The Skill resolves the checkout, identifies the version, searches modules/apps/document-library for the relevant AssetRendererFactory, and explains the implementation with file references. ## Quick Start Ask the assistant to find how a specific Liferay feature is implemented in the portal source, for example where a given portlet or service class lives.