Join a video meeting as an AI bot with voice, avatar, and screenshare across four operating modes.
Integrations
Volcengine Prepare
Try itGet an analyzed repo summary and a ranked ECS / VKE / veFaaS recommendation for deploying to Volcengine.
What it does
Reads a local directory or Git URL and identifies language, framework, port, Dockerfile/compose shape, entrypoint, dependencies, and the concrete deployable service surface. When Volcengine credentials are present it optionally probes identity and region service availability. Returns a ranked list of ECS, VKE, and veFaaS paths with reasons, rough cost level, operational tradeoffs, and a CLI vs Terraform/IaC resource management recommendation. Acts as decision support only — it does not run the deployment itself, and only writes a small choice record to .volcengine/deploy-choice.json when work continues across steps.
When to use it
- Choosing between ECS, VKE, and veFaaS for a new project
- Locating the deployable service surface in an unfamiliar repo
- Picking CLI vs Terraform for resource management
- Selecting a managed database product (RDS MySQL/PostgreSQL/SQL Server vs AIDAP Supabase/PostgreSQL) when a DB is detected
The skill document
Volcengine Prepare Skill
Analyze a repo, explain viable Volcengine deployment paths, and decide the resource management path. Treat this skill as decision support, not as a workflow engine. Do not make a heavy report schema the goal.
0. Core behavior
Default flow:
- Resolve the repo from a local path or Git URL.
- Run the analyzer to identify language, framework, port, Docker/compose shape, dependencies, migrations, entrypoint, and the deployable service surface.
- Optionally verify the current Volcengine identity and region when credentials are available.
- Present a ranked list of ECS / VKE / veFaaS only after a deployable service surface is clear. Include every materially viable path; explain why each path is attractive or costly. Use
ecs | vke | vefaasas machine-readable mode values. - Recommend a resource management path (
clioriac) perreferences/deploy-mode-heuristics.md, and ask the user to confirm. - Ask only for product/lifecycle ambiguity, resource reuse, and the resource management choice. If the user says "you decide", use the first ranked runtime path, the recommended resource management path from these rules, and new isolated resources.
- Persist only minimal state in
.volcengine/when the work will continue across steps.
Before ranking ECS / VKE / veFaaS, identify the concrete deploy target: the repo, subdirectory, command, artifact, static output, or existing cloud app/function that a path can actually run, containerize, expose, or serve. File-level signals are evidence, not conclusions. A Dockerfile, compose file, package.json, framework dependency, or build/dev/test script does not by itself prove the repo is deployable.
Do not run strict tool dependency checks during recommendation. Check path-specific tools only after the user chooses a path.
State directory:
.volcengine/
deploy-choice.json # chosen mode/resource strategy, when persistence is useful
created-resources.json # maintained by deploy only for CLI fast path
terraform/ # IaC working files, only when infra_management=iac
iac-outputs.json # Terraform outputs consumed by deploy
Use /tmp only for temporary clones or caches.
1. Resolve and analyze the repo
For Git URLs, clone to a temporary cache. For local paths, analyze in place.
input="${1:-.}"
if [[ "$input" =~ ^(https?|git@) ]]; then
repo_name=$(basename "$input" .git)
cache_dir="/tmp/volcengine-prepare/$repo_name"
mkdir -p "$cache_dir"
[ -d "$cache_dir/src/.git" ] || git clone --depth 1 "$input" "$cache_dir/src"
repo_dir="$cache_dir/src"
else
repo_dir=$(cd "$input" && pwd)
repo_name=$(basename "$repo_dir")
fi
git_sha=$(cd "$repo_dir" && git rev-parse --short HEAD 2>/dev/null || echo "unversioned")
Run:
analysis=$(bash scripts/analyze-repo.sh "$repo_dir")
echo "$analysis" | jq .
Show the important findings in plain language:
Project: @
Runtime: /
Deployable subdir:
Deployable surface:
Entrypoint:
Port:
Packaging signals: Dockerfile=, compose=
Dependencies:
Migrations:
If the analyzer cannot identify a concrete ECS/VKE/veFaaS deploy target, ask what subdirectory, service, command, artifact, static output, or existing veFaaS app/function should be deployed before recommending a path. Downgrade to confirmation instead of a strong recommendation when the repo appears to be primarily build tooling, packaging, examples, docs, or reusable code rather than an application surface.
A deploy target is something that can be run, containerized, exposed, or served by ECS, VKE, or veFaaS. Useful evidence includes, but is not limited to:
- a long-running process with a start command,
- a listening port or RPC/API/HTTP route,
- a static/HTML site entry or build output intended for serving,
- a health check or smoke endpoint,
- frontend and backend/API pieces with a clear service boundary,
- an explicit user instruction naming the service, subdirectory, command, artifact, or runtime target.
Do not infer deployability from a Dockerfile, package scripts, or build tooling alone.
2. Optional cloud identity check
If VOLCENGINE_ACCESS_KEY, VOLCENGINE_SECRET_KEY, and VOLCENGINE_REGION are set, verify identity:
ve sts GetCallerIdentity
Do not read ~/.volcengine/config.json; it may contain secrets. If env vars are absent, keep the recommendation going and tell the user credential checks will happen when executing the chosen path.
If cloud service availability matters for a near-term choice, run the read-only probe:
services=$(bash scripts/check-region-services.sh)
echo "$services" | jq .
Surface permission or region notes in the corresponding option; do not hide that option.
Prechecks are advisory, not gates. If you can cheaply check quotas or permissions, present the result as a risk:
may be insufficient; continuing could fail when creating resources. Proceed anyway?
If account real-name verification or balance cannot be queried reliably, give a short reminder instead of inventing a check:
Creating cloud resources may require a real-name-verified account with sufficient balance/credit; if creation fails, resolve the account status in the console first.
3. Recommend deployment paths
Use references/deploy-mode-heuristics.md for the detailed decision rules. Present a ranked list, not recommended=true/false flags or scoring internals. If the deployable surface is unclear, present the ambiguity first and ask the smallest follow-up question before ranking.
Include every materially viable option; do not force a full ECS / VKE / veFaaS comparison when the repo or user request clearly rules a path out. Mention a non-viable path only when its exclusion helps the user decide.
- ECS: VM path. Best for targets that can run on a Linux VM, such as Web/API/RPC services, full-stack apps, static-site serving processes, binaries, Docker/compose apps, workers, scheduled commands, or apps needing OS/network/disk/debugging control.
- VKE: Container/Kubernetes path. Best for containerized or Kubernetes-shaped targets, such as multi-service apps, Web/API/RPC containers, workers, Jobs/CronJobs, rolling updates, replicas, HPA, Ingress/Service, GPU workloads, or production container operations.
- veFaaS: Serverless path. Best only when the target fits the
volcengine-vefaasskill workflow: supported Web/API or frontend/static frameworks, or an existing veFaaS app/function. Prefer ECS/VKE for long-running workers, multi-service orchestration, complex migrations, unsupported event/task/trigger creation, custom system dependencies, or no available API Gateway. If the user chooses it, switch to/call thevolcengine-vefaasskill for deployment; if that fails, return to the main flow so the user can retry or choose ECS/VKE.
Include:
- why it is ranked where it is
- rough cost level (
low,medium,medium-high) - operational tradeoffs
- known blockers or setup needed if the user chooses it
- resource management recommendation (
iacorcli) and why
Do not check every tool before the user chooses. Phrase setup needs as decision guidance. Fill the resource management recommendation from references/deploy-mode-heuristics.md, but do not mention that internal reference path to the user:
Resource management recommendation: . Reason: . Confirm `iac` or `cli`.
Choosing VKE will check kubectl; if you choose IaC it will also check terraform/provider availability.
Choosing veFaaS switches to / calls the `volcengine-vefaas` skill to check the vefaas CLI, login status, and framework detection; on failure it returns here so you can fix it and retry, or switch to ECS/VKE.
4. Ask only necessary questions
After showing the ranked list, ask only what cannot be safely inferred:
1. Deployment mode: defaults to the top-ranked option. Choose ECS / VKE / veFaaS (recorded as `ecs` / `vke` / `vefaas`).
2. Resource strategy: defaults to a new isolated project deploy- with new resources; you may also reuse existing resources.
3. Database product/engine, only when a managed database is detected or requested: choose `rds/mysql`, `rds/postgresql`, `rds/sqlserver`, `aidap/supabase`, or `aidap/postgresql`.
4. Resource management: recommend ; confirm whether to use the CLI resource ledger or Terraform/IaC.
For MySQL dependencies, use database_product=rds and database_engine=mysql unless the user rejects managed RDS. For SQL Server dependencies, use database_product=rds and database_engine=sqlserver. For PostgreSQL dependencies, preserve explicit user intent first: choose RDS PostgreSQL for an explicit RDS / managed RDS instance request, choose AIDAP PostgreSQL for an explicit AIDAP/serverless PostgreSQL request, and choose AIDAP Supabase for an explicit Supabase request. When the product is ambiguous and the user has not delegated the choice, ask because RDS PostgreSQL, AIDAP PostgreSQL, and AIDAP Supabase are different choices.
Ask whether to use Terraform/IaC explicitly. Give a recommendation per references/deploy-mode-heuristics.md, but do not turn it into a default. Ask the user to confirm iac or cli.
If the user says "you decide", use:
- deployment mode: first ranked option
- resources: create new isolated Volcengine project
deploy- - database product/engine: infer exact engines when unambiguous (
mysql->rds/mysql,sqlserver->rds/sqlserver); for PostgreSQL, choose AIDAP Supabase (database_product=aidap,database_engine=supabase) when the project has no explicit RDS/AIDAP PostgreSQL/Supabase signal. - resource management: apply
references/deploy-mode-heuristics.md
If the user chooses reuse, ask for only the resource IDs needed by that path. Reused resources must not be destroyed by cleanup.
5. Persist the user's choice only when useful
If execution continues in the same conversation, no file is required. If the user may resume later or the next step needs a durable handoff, write only a small choice record:
{
"schema_version": "1",
"repo_dir": "/absolute/path",
"repo_name": "my-app",
"git_sha": "abc1234",
"region": "cn-beijing",
"mode": "ecs",
"port": 8080,
"dependencies": ["postgresql", "redis"],
"database_product": "aidap",
"database_engine": "supabase",
"resource_strategy": "create-isolated-project",
"project": "deploy-my-app",
"infra_management": "cli"
}
Write it to .volcengine/deploy-choice.json.
Do not write score tables, rationale arrays, or a full recommendation matrix unless the user asks for a report.
6. Summary template
Project detection:
- Runtime: /
- Deployable surface:
- Entrypoint/port: /
- Packaging signals: Dockerfile=, Compose=
- Dependencies:
- Database choice:
- Migrations:
- Resource management recommendation:
Ranked order:
1.
Reason: ...
Tradeoff: ...
Rough cost: ...
2.
...
3.
...
Please confirm:
1. Deployment mode: defaults to
2. Resource strategy: defaults to a new isolated project deploy-; reuse is also possible
3. Resource management: recommend ; confirm `iac` or `cli`
Questions people ask
- Does this skill actually deploy my app?
- No. It analyzes the repo and recommends a Volcengine compute path and resource management style. Deployment is handed off to a follow-up step, and the veFaaS path delegates to the volcengine-vefaas skill.
- What evidence does it use to rank the paths?
- It looks for a concrete deploy target: a long-running process with a start command, a listening port or HTTP route, a static site entry, a health or smoke endpoint, or a clear frontend/backend boundary. A Dockerfile, package scripts, or build tooling alone do not by themselves prove the repo is deployable.
- What state does it leave behind?
- When work continues across steps it writes a minimal .volcengine/deploy-choice.json containing repo path, region, mode, port, dependencies, database choice, resource strategy, and infra_management. Terraform working files only appear under .volcengine/terraform/ when infra_management is set to iac.
Related skills
Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.
Run Git operations — commits, branches, merges, rebases, conflict resolution, and recovery — with safety rules enforced.
Generate and edit Draw.io, Mermaid, and Excalidraw diagrams from natural language using a structured JSON spec.
Write, debug, and tune Playwright specs with locator strategy, trace diagnosis, and CI-aware timeouts.
Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.
More from volc-sdk-team
Browse all skillsCreate and manage Volcengine cloud resources through the ve CLI with safe authentication and confirmation flows.
Generate Volcengine SDK call examples in Python, Go, Java, PHP, Node.js, or cURL from a chosen API and user-supplied params.
Look up Volcengine API specs on demand: parameters, error codes, responses, pagination.
Deploy a local directory or Git repo to Volcengine as a reachable cloud service on ECS, VKE, or veFaaS.
Use when the user asks to analyze, consult, setup, manage, configure, or design a Volcengine Landing Zone, including organization, accounts, finance, identity, cloudtrail, or network infrastructure.
使用 ve docs search/fetch 检索火山引擎官方文档并获取全文。Use when 用户咨询火山引擎产品的概念、用法、计费规则、部署步骤、最佳实践或服务条款,或提供 www.volcengine.com/docs/、docs.volcengine.com/docs/ 链接需要阅读正文时。