Agent skill

plutonium-connect-resource

Connect existing resources to portals for web access

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/plutonium-connect-resource

SKILL.md

Connect Resource Skill

Use the pu:res:conn generator to connect resources to portals. This is required to expose resources through a portal's web interface.

Command Syntax

bash
rails g pu:res:conn RESOURCE [RESOURCE...] --dest=PORTAL_NAME

Always specify resources directly - this avoids interactive prompts. The --src option is only needed for interactive mode and can be ignored.

Usage Patterns

Main App Resources (not in a package)

bash
rails g pu:res:conn PropertyAmenity --dest=admin_portal
rails g pu:res:conn Post Comment Tag --dest=dashboard_portal

Namespaced Resources (from a feature package)

Use the full class name:

bash
rails g pu:res:conn Blogging::Post --dest=admin_portal
rails g pu:res:conn Blogging::Post Blogging::Comment --dest=admin_portal

Multiple Resources at Once

bash
rails g pu:res:conn Property PropertyAmenity Unit Tenant --dest=admin_portal

What Gets Generated

For a resource Post connected to admin_portal:

packages/admin_portal/
├── app/
│   ├── controllers/admin_portal/
│   │   └── posts_controller.rb      # Portal controller
│   ├── policies/admin_portal/
│   │   └── post_policy.rb           # Portal policy (if needed)
│   └── definitions/admin_portal/
│       └── post_definition.rb       # Portal definition (if needed)
└── config/
    └── routes.rb                    # Updated with register_resource

Generated Controller

ruby
class AdminPortal::PostsController < ::PostsController
  include AdminPortal::Concerns::Controller
end

Generated Policy

ruby
class AdminPortal::PostPolicy < ::PostPolicy
  include AdminPortal::ResourcePolicy

  def permitted_attributes_for_create
    [:title, :content, :user_id]
  end

  def permitted_attributes_for_read
    [:title, :content, :user_id, :created_at, :updated_at]
  end

  def permitted_associations
    %i[]
  end
end

Route Registration

ruby
# In packages/admin_portal/config/routes.rb
register_resource ::Post

Typical Workflow

bash
# 1. Create resources (always specify --dest)
rails g pu:res:scaffold Post user:belongs_to title:string 'content:text?' --dest=main_app

# 2. Run migrations
rails db:migrate

# 3. Connect resources to portal (always specify --dest)
rails g pu:res:conn Post --dest=admin_portal

Important Notes

  1. Always specify resources directly - avoids prompts, no --src needed
  2. Always use the generator - never manually connect resources
  3. Run after migrations - the generator reads model columns for policy attributes
  4. Portal-specific customization - customize the generated policy/definition per-portal

Didn't find tool you were looking for?

Be as detailed as possible for better results