About run-self-service
A skill for using Port self-service actions through a natural-language agent workflow. It guides action discovery, input collection and validation, execution, and status reporting.
Key features
- 01Discover actions by user intent
- 02Retrieve input schemas and approvals
- 03Collect and validate required inputs
- 04Confirm before execution
- 05Track asynchronous run status
Use cases
- 01Provision cloud infrastructure
- 02Create a service or environment
- 03Run a Port self-service action
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ revitalb-port/ skills-registry-demo --skill run-self-serviceAfter installing, type/run-self-servicein Claude Code to confirm it loaded.
Bundled fileshelpers.py
Details
From the project READMERun Self-Service Action Skill
Execute Port self-service actions through natural language interface.
When to Use
- User wants to create cloud infrastructure
- Provisioning a new service or environment
- Triggering any Port self-service action
Execution Process
Step 1: Discover Available Actions
list_actions()
Find actions matching user intent.
Step 2: Get Action Schema
get_action(identifier="action-name")
Retrieve:
- Required inputs
- Input types and validation
- Approval requirements
Step 3: Collect User Inputs
For each required input, prompt the user:
- Use the input's title and description
- Show enum options if available
- Validate format (email, URL, etc.)
Present like a form:
📝 Create New Service
Service Name: [required]
>
Team: [required, select one]
• platform-team
• payments-team
• growth-team
Environment: [required, select one]
• development
• staging
• production
Description: [optional]
>
Step 4: Validate Inputs
Before submission:
- Check required fields
- Validate formats
- Confirm with user
Step 5: Execute Action
run_action(identifier="action-name", properties={
"service_name": "user-input",
"team": "selected-team",
"environment": "selected-env"
})
Step 6: Monitor Execution
If action is async:
get_action_run(run_id="run-123")
Report status: pending → running → success/failure
Example Interactions
User: "I need a new S3 bucket"
Agent:
- Finds
provision_s3_bucketaction - Gets schema: bucket_name, region, access_level
- Prompts:
📝 Provision S3 Bucket Bucket Name: [required] > Region: [required, select one] • us-east-1 • eu-west-1 Access Level: [required, select one] • private • public-read - Executes action
- Reports: "✅ Bucket created: my-bucket.s3.amazonaws.com"
User: "Create a new microservice"
Agent:
- Finds
scaffold_serviceaction - Collects: name, language, team, repo visibility
- Executes
- Reports: "✅ Service created with repo, CI pipeline, and Port entity"
Form-Like Experience
When collecting inputs:
- Show one input at a time for clarity
- Provide defaults where available
- Show validation errors inline
- Confirm before execution
Quality Checklist
- Found correct action for user intent
- Retrieved complete input schema
- Collected all required inputs
- Validated input formats
- Confirmed before execution
- Reported execution status
Comments
Markdown supported