From syncable-cli-skills
Manages Syncable platform via CLI: authenticate, switch org/project/env, check context, preview/confirm/deploy/monitor services to GCP/Azure with env vars.
npx claudepluginhub syncable-dev/syncable-cli --plugin syncable-cli-skillsThis skill uses the workspace's default tool permissions.
Manage Syncable platform: authenticate, switch org/project/environment, check context, deploy services.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Manage Syncable platform: authenticate, switch org/project/environment, check context, deploy services.
Always check auth before any platform operation:
sync-ctl auth status
If not authenticated: sync-ctl auth login (opens browser for OAuth). Tell user a browser will open. Command blocks until authorized.
Success criteria: sync-ctl auth status shows authenticated.
# Organization (switching clears project + env)
sync-ctl org list → find ID → sync-ctl org select <ORG_ID>
# Project (requires UUID)
sync-ctl project list → find ID → sync-ctl project select <PROJECT_ID>
# Environment (accepts name directly)
sync-ctl env select <ENV_NAME>
Multiple matches: show user and ask. No matches: show available options.
sync-ctl project current
# Auth
sync-ctl auth status | login | login --no-browser | logout | token --raw
# Org
sync-ctl org list | org select <ID>
# Project
sync-ctl project list | project select <ID> | project current | project info [ID]
# Environment
sync-ctl env list | env select <NAME_OR_ID>
sync-ctl deploy preview <PATH> --service-name my-service
Success criteria: JSON with recommendation, connected_providers, alternatives.
Show: service name, provider, region, port, public/internal. If .env files found, list keys and ask which to include.
CRITICAL: NEVER deploy without preview + user confirmation. ONLY include env vars the user explicitly confirmed.
sync-ctl deploy run <PATH> --service-name <NAME> --provider <PROVIDER> --region <REGION> --port <PORT>
Success criteria: JSON with config_id and task_id.
sync-ctl deploy status <TASK_ID> --watch
| Flag | Purpose |
|---|---|
--service-name <NAME> | Service name (always set) |
--provider <gcp|hetzner|azure> | Cloud provider |
--region <REGION> | Deployment region |
--port <PORT> | Port to expose |
--public | Publicly accessible (default: internal) |
--env <KEY=VALUE> | Non-secret env var (repeatable) |
--secret <KEY> | Secret (user prompted for value, repeatable) |
--env-file <PATH> | Load from .env file |
--min-instances <N> / --max-instances <N> | Replica range |
| Mistake | Fix |
|---|---|
| Auto-including discovered env vars without asking | ONLY set env vars the user explicitly requested |
| Deploying without preview | Always deploy preview first, show user, get confirmation |
| Using directory name as service name | Always set --service-name explicitly |
| Error | Action |
|---|---|
Not authenticated / Token expired | sync-ctl auth login |
No organization selected | sync-ctl org list then org select <ID> |
No project selected | sync-ctl project list then project select <ID> |
Deployment failed | sync-ctl deploy status <TASK_ID> for details |