create-pm2-clj-config
Skill: Create PM2 Configs
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Skill: Create PM2 Configs
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Never run Docker containers as root. Enforce USER directive in Dockerfiles and user: in compose files. Database images are the only exception.
Handle packages migrating between pnpm workspaces. Clean stale root copies, update workspace configs, fix broken workspace:* references.
Recover lost source files from pi session history when files were deleted but never committed to git.
Improve the Hormuz clock model through new signal classes, schema changes, uncertainty modeling, and better rendering or branch logic
Revise fork-tax protocols so they assume concurrent agents by default in shared workspaces, forbid destructive repo-wide cleanup of unrelated dirt, and require path-scoped staging plus explicit blocker recording.
Persist the full working state into git (commit + tag + push + manifest artifacts) as a deterministic handoff snapshot. Use when the user requests Π / fork tax / full dump.
| name | create-pm2-clj-config |
| description | Skill: Create PM2 Configs |
Create new pm2-clj ecosystem configuration files from scratch or templates.
pm2-process-management skill)ecosystem.config.* to pm2-clj (use migration workflow)Identify where the new config should live:
system/daemons/<group>/<name>/ecosystem.pm2.cljorgs/<org>/<repo>/ecosystem.pm2.cljorgs/<org>/<repo>/packages/<pkg>/ecosystem.pm2.cljCreate the EDN structure following pm2-clj conventions:
Basic template:
{:apps
[{:name "<process-name>"
:script "<script-name>"
:args "<arguments>"
:cwd "<working-directory>"
:interpreter "node"
:env {:NODE_ENV "development"
:PORT 3000}
:env_production {:NODE_ENV "production"
:PORT 3000}
:max_restarts 5
:restart_delay 2000
:autorestart true}]}
Multi-app template:
{:apps
[{:name "app-1"
:script "node"
:cwd "/path/to/app1"
:env {:PORT 3000}}
{:name "app-2"
:script "pnpm"
:args "dev"
:cwd "/path/to/app2"
:env {:PORT 3001}}]}
Add appropriate fields based on process type:
:watch - true/false for file watching:instances - cluster mode instances count:exec_mode - "fork" or "cluster":log_file, :error_file, :out_file - log paths:interpreter_args - Node.js flags:node_args - Alternative for Node.js flags:max_memory_restart - Memory limit before restartRun render to validate:
clobber render <new-config-path>/ecosystem.pm2.clj | jq '.'
Test the configuration:
clobber start <new-config-path>/ecosystem.pm2.clj
pm2 list
pm2 logs <process-name>
*.pm2.clj extension for all pm2-clj configs:env, :env_production):cwd to the actual working directory:interpreter for Node.js, leave empty for scripts like pnpmecosystem.pm2.clj file at appropriate location{:apps
[{:name "new-daemon"
:script "./dist/index.js"
:cwd "/home/err/devel/system/daemons/new-group/new-daemon"
:interpreter "node"
:env {:NODE_ENV "production"}
:max_restarts 5
:restart_delay 2000
:autorestart true}]}
{:apps
[{:name "api-service"
:script "node"
:args "./dist/index.js"
:cwd "/home/err/devel/orgs/riatzukiza/promethean/packages/api-service"
:interpreter "node"
:env {:PORT 8080
:NODE_ENV "development"}
:env_production {:PORT 8080
:NODE_ENV "production"}
:log_file "./logs/api-combined.log"
:error_file "./logs/api-error.log"
:out_file "./logs/api-out.log"}]}
{:apps
[{:name "dev-ui"
:script "vite"
:args "--port 3000 --host 0.0.0.0"
:cwd "/path/to/ui"
:interpreter "node"
:watch false
:env {:NODE_ENV "development"}}]}
pm2-process-management skill to start/stop the new processrender-pm2-clj-config skill to validate before startingworkspace-navigation skill to find existing examples