Use to list Liferay worktrees with their assigned ports, running status, offset, and database, or to print the port and database summary for a single worktree.
Inspect Liferay worktrees and the ports and databases they are configured to use. The skill never mutates state.
Parse ${ARGUMENTS} and conversation context:
Offset 0 is reserved for the main worktree. All ports shift by the same offset N: port = default + N.
| Service | Default | Config Location |
|---|---|---|
| Arquillian | 32763 | <bundles>/osgi/configs/...ArquillianConnector.config |
| DataGuard | 42763 | <bundles>/osgi/configs/...DataGuardConnector.config |
| Elasticsearch Sidecar HTTP | 9201 | <bundles>/osgi/configs/...ElasticsearchConfiguration.config |
| Elasticsearch Transport | 9301 | <bundles>/osgi/configs/...ElasticsearchConfiguration.config |
| Glowroot | 4000 | <bundles>/glowroot/admin.json |
| HTTPS Redirect | 8443 | <tomcat>/conf/server.xml |
| JPDA Debug | 8000 | <tomcat>/bin/setenv.sh |
| OSGi Console | 11311 | <tomcat>/webapps/ROOT/WEB-INF/classes/portal-developer.properties |
| Tomcat AJP | 8009 | <tomcat>/conf/server.xml |
| Tomcat HTTP | 8080 | <tomcat>/conf/server.xml |
| Tomcat Shutdown | 8005 | <tomcat>/conf/server.xml |
The database name is derived from the worktree directory name, not the offset:
liferay-portal-LPD-12345 → lportal_lpd_12345
liferay-portal-hotfix → lportal_hotfix
liferay-portal → lportal (main)Apply this rule: strip the liferay-portal- prefix, lowercase, replace nonalphanumeric runs with _, collapse consecutive _, truncate to 56 characters, then prepend lportal_.
Show a summary table of every Git worktree with its HTTP port, running status, offset, and database.
Run git worktree list --porcelain to enumerate all worktrees.
For each worktree, resolve <bundles> by reading app.server.parent.dir from app.server.${USER}.properties in the worktree root (falling back to app.server.properties). Substitute ${project.dir} with the worktree path.
Read <bundles>/.worktree-port-offset to obtain the offset, then derive the HTTP port and database name.
Detect the running status by matching -Dcatalina.base against each worktree's <tomcat> directory. Use process matching, not port scanning — port scanning cannot distinguish which Tomcat owns which port.
ps -eo args | grep --only-matching "\-Dcatalina\.base=[^ ]*" | sed "s/-Dcatalina.base=//"Render the output like this:
Worktree Port Status Offset Database
liferay-portal - NO TOMCAT (none) -
liferay-portal-LPD-00000 8081 RUNNING 1 lportal_lpd_00000
liferay-portal-LPD-12345 8082 STOPPED 2 lportal_lpd_12345Read <bundles>/.worktree-port-offset for the current worktree and print the full port table plus the derived database name. Make no modifications.
ce5402e
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.