skills/lumina-image/SKILL.md
Build Lumina container images. Use this skill when the user wants to build the proxy API image, build the SandboxControlPlane API image, build the sandbox agent image, or build any Lumina-specific Docker image (e.g., 'build proxy api image', 'build scp api image', 'build sandboxcontrolplane image', 'build sandbox agent').
npx skillsauth add liulixiang1988/agent-skills lumina-imageInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You build Lumina-specific container images by sourcing and calling pre-built script functions. Do NOT manually replicate the steps in the scripts — just source and call the function directly.
When the user asks to build the proxy API image (e.g., "build proxy api image", "build lumina proxy", "build proxy api"):
if (-not $Env:MS_PATH) { $Env:MS_PATH = Get-Location }
. "<skill-path>/scripts/build-proxy.ps1"; lumina_build_proxy_api_image
When the user asks to build the SandboxControlPlane API image (e.g., "build scp api image", "build sandboxcontrolplane image", "build scp image", "build sandbox control plane api"):
if (-not $Env:MS_PATH) { $Env:MS_PATH = Get-Location }
. "<skill-path>/scripts/build-proxy.ps1"; lumina_build_scp_api_image
When the user asks to build the sandbox agent image (e.g., "build sandbox agent", "build sandbox agent image", "build sandbox image"):
Windows (PowerShell):
if (-not $Env:MS_PATH) { $Env:MS_PATH = Get-Location }
. "<skill-path>/scripts/build-proxy.ps1"; sandbox_build_agent_image
macOS/Linux (bash/zsh):
if [ -z "${MS_PATH:-}" ]; then export MS_PATH="$(pwd)"; fi
. "<skill-path>/scripts/build-sandbox-agent.sh"; sandbox_build_agent_image
When the user asks to replace or update an existing Lumina deployment image in Kubernetes after building an image (for example, replacing the SandboxControlPlane deployment image in AKS), do not change the deployment immediately.
You must first ask the user to confirm the target values for all of the following:
kubectx / Kubernetes context to use.After collecting those values, explicitly ask the user whether to replace the existing deployment image. Only perform the kubectl set image / rollout step after the user confirms.
Recommended execution flow:
Recommended question template:
I can replace the existing deployment image, but I need you to confirm the target first.
Please choose:
1. kube context
2. namespace
3. deployment
Then I will show the exact image tag and ask for final confirmation before applying the change.
Recommended confirmation template:
I am about to replace the image for deployment <deployment> in namespace <namespace> on context <kube-context>.
Target image:
<image>
Do you want me to replace the existing deployment image now?
Recommended execution commands after confirmation:
kubectl --context <kube-context> -n <namespace> get deployment <deployment> -o json
kubectl --context <kube-context> -n <namespace> set image deployment/<deployment> <container-name>=<image>
kubectl --context <kube-context> -n <namespace> rollout status deployment/<deployment> --timeout=10m
kubectl --context <kube-context> -n <namespace> get pods -l app=<deployment> -o wide
Notes:
kubectl set image.If the deployment has multiple containers:
Recommended multi-container inspection command:
kubectl --context <kube-context> -n <namespace> get deployment <deployment> -o jsonpath="{range .spec.template.spec.containers[*]}{.name}{'|'}{.image}{'\n'}{end}"
Recommended multi-container question template:
This deployment has multiple containers. Please choose which container to update:
<container-name-1> | <current-image-1>
<container-name-2> | <current-image-2>
<container-name-3> | <current-image-3>
Recommended multi-container confirmation template:
I am about to replace the image for container <container-name> in deployment <deployment> within namespace <namespace> on context <kube-context>.
Current image:
<current-image>
Target image:
<target-image>
Do you want me to replace this container image now?
MS_PATH: Must point to the CopilotLumina root directory. If not set, the commands above auto-detect it from the current working directory.az acr login -n luminaacrdev and retry.<skill-path>: Replace with the actual path to the skill directory containing the scripts folder.lumina_build_proxy_api_image remains Windows/PowerShell only.lumina_build_scp_api_image is Windows/PowerShell only.sandbox_build_agent_image now supports both Windows (PowerShell) and macOS/Linux (bash/zsh).development
Register and verify a sandbox-hosted HTTP service through Lumina App Proxy (LuminaProxyAPI). Use when the user wants to spin up a tiny FastAPI server inside a Lumina sandbox, expose it under {appId}.{BaseDomain}, hand the resulting URL to teammates, or compare access_scope=owner vs access_scope=all behavior of the AppProxyAuthHandler. Pairs with lumina-eps-token to acquire the bearer token and create the sandbox first.
tools
Acquire and validate Lumina EPS/LuminaServiceAPI bearer tokens using the CopilotLumina eps_client.py and get-lumina-token.ts helpers. Use when the user asks about Lumina token acquisition, EPS client authentication, testing luminaserviceapi hosts, running eps_client.py, validating v1/v3 EPS routes, resolving bundled helper script paths across .agents/.claude/.copilot installs, or fixing local Bun/Python/uv environment issues for these flows.
testing
Pulls 3-year financial statements (income, balance sheet, cash flow) for a single stock and produces a deep Chinese-language report, OR compares multiple peers head-to-head. Use whenever the user asks to 分析/解读/看一下 a company's 财报/财务/营收/利润/资产负债/现金流, asks for 三年/近三年/最近几年 financials, or wants to compare multiple stocks 对比/PK/比较 on financial metrics. Triggers on phrases like "帮我看下 X 的财报"、"分析 X 这三年的财务"、"X 和 Y 哪个更好"、"对比 A B C 三家". Covers US/HK/KR/A-share stocks via stockanalysis.com.
tools
End-to-end Microsoft Connect (half-yearly performance review) drafting + inject into the Connect tool. Trigger when user mentions Connect, connect draft, 绩效盘点, Microsoft performance review, "write my connect", "draft my connect", "帮我写 connect", or asks to populate v2.msconnect.microsoft.com. Gathers evidence (ADO work items + PRs, SharePoint-authored docs via workiq, historical Connects via Playwright for style), builds a local sign-off flow chart for the user to review, then injects HTML-formatted content (with hyperlinks, nested lists, underlines) directly into the Roosterjs rich-text editor fields via simulated paste events. Asks the user for period dates, repos, SharePoint URLs, and historical Connect IDs at runtime because these vary per person.