Video Intent Studio
Follow a user-led workflow for video generation. Do not choose the final prompt for the user. Suggest options, keep the current prompt transparent, and ask for confirmation before generation.
Core behavior
- Respond in the user's language. Default to Chinese if the user is writing in Chinese.
- Keep the workflow layered: intent -> ranked video types -> parameter tuning -> prompt confirmation -> generation.
- Present 3 to 5 options at the type-selection step. Keep the option set stable and only reorder by relevance.
- Show the current prompt preview whenever parameters change.
- Let the user revise or exit at every stage.
- Keep a simple state object in memory or scratch space:
state = {
"user_input": "",
"selected_type": None,
"params": {
"duration": 8,
"ratio": "16:9",
"motion": "medium",
"style": "original",
"brightness": "normal",
"subtitle": "off",
"dream_filter": "off",
},
"final_prompt": "",
"stage": "init",
}
Skill directory and script paths
When this SKILL.md is loaded, resolve the skill directory from the absolute path of this file.
- Suggestion and prompt builder:
<skill-dir>/scripts/video_agent_backend.py
- Final generator:
<skill-dir>/scripts/generate_ark_video.py
- Type catalog and defaults:
<skill-dir>/references/video-types.md
- Usage walkthrough and examples:
<skill-dir>/references/usage-guide.md
Use absolute paths when running the scripts.
Recommended workflow
Capture the user's raw idea.
- Keep the original wording in state as
user_input.
- Do not rewrite it into a final prompt yet.
Rank video types.
python "<skill-dir>/scripts/video_agent_backend.py" suggest --input "user idea"
- Present the top 3 to 5 results as numbered options.
- For each option, include:
- type name
- one-sentence use case
- default duration and ratio
- short reason why it matches
- After the user chooses a type, build a prompt preview.
python "<skill-dir>/scripts/video_agent_backend.py" build ^
--input "user idea" ^
--type cinematic-story
- Show:
- current prompt preview
- current parameter summary
- a short numbered list of tunable options
If the user adjusts settings, rerun build with explicit parameters.
- Supported parameters:
--duration 5|8|10|12
--ratio 9:16|16:9|1:1|4:3
--motion light|medium|strong
--style realistic|anime|cinematic|original
--brightness moody|normal|bright
--subtitle off|on
--dream-filter off|on
--notes "extra user constraint"
Before generation, show the final prompt and ask for confirmation.
- Use a short confirmation question such as:
- "Final prompt and parameters are ready. Generate now?"
After explicit confirmation, generate the video.
python "<skill-dir>/scripts/generate_ark_video.py" ^
--prompt "final prompt text" ^
--output "C:\path\to\result.mp4"
- Report success or failure clearly.
- On success, give the downloaded file path and task id if available.
- On failure, bucket the issue into one of:
- API key or auth problem
- network or polling problem
- task failed remotely
- response did not include a downloadable video URL
Important implementation notes
- The bundled generator script intentionally mirrors the existing HTTP + polling pattern already used in this workspace.
- The current API request sends a text prompt payload only. Duration, ratio, motion, style, and other controls are encoded into the prompt text unless you later extend the API payload.
- The generator script reads credentials from environment variables first:
ARK_API_KEY
VOLCENGINE_ARK_API_KEY
- Optional environment variables:
ARK_VIDEO_MODEL
ARK_VIDEO_TASKS_URL
Conversation rules
- Do not skip the type-selection step unless the user explicitly says they already know the type.
- Do not ask broad open-ended questions if a numbered choice is possible.
- If the user says "more realistic", "more cinematic", "shorter", "vertical", or similar, treat that as a parameter update and keep moving.
- If the user says "generate", "go", or "就这样生成", show the final prompt once and ask for one explicit confirmation unless they already confirmed in the same message.
When to read references
- Read references/video-types.md when you need the fixed type list, defaults, or category-specific prompt leads.
- Read references/usage-guide.md when you need example conversations, sample commands, or the user-facing tutorial flow.
1---2name: video-intent-studio3description: Guide staged text-to-video generation from a rough user idea to ranked video type options, parameter tuning, prompt preview, and final Volcengine Ark video generation via bundled helper scripts. Use when a user wants help deciding video style, duration, ratio, motion, or prompt wording before generating a video, and when a reusable multi-turn workflow with simple state tracking is needed.4---56# Video Intent Studio78Follow a user-led workflow for video generation. Do not choose the final prompt for the user. Suggest options, keep the current prompt transparent, and ask for confirmation before generation.910## Core behavior1112- Respond in the user's language. Default to Chinese if the user is writing in Chinese.13- Keep the workflow layered: intent -> ranked video types -> parameter tuning -> prompt confirmation -> generation.14- Present 3 to 5 options at the type-selection step. Keep the option set stable and only reorder by relevance.15- Show the current prompt preview whenever parameters change.16- Let the user revise or exit at every stage.17- Keep a simple state object in memory or scratch space:1819```python20state = {21 "user_input": "",22 "selected_type": None,23 "params": {24 "duration": 8,25 "ratio": "16:9",26 "motion": "medium",27 "style": "original",28 "brightness": "normal",29 "subtitle": "off",30 "dream_filter": "off",31 },32 "final_prompt": "",33 "stage": "init",34}35```3637## Skill directory and script paths3839When this `SKILL.md` is loaded, resolve the skill directory from the absolute path of this file.4041- Suggestion and prompt builder:42 - `<skill-dir>/scripts/video_agent_backend.py`43- Final generator:44 - `<skill-dir>/scripts/generate_ark_video.py`45- Type catalog and defaults:46 - `<skill-dir>/references/video-types.md`47- Usage walkthrough and examples:48 - `<skill-dir>/references/usage-guide.md`4950Use absolute paths when running the scripts.5152## Recommended workflow53541. Capture the user's raw idea.55 - Keep the original wording in state as `user_input`.56 - Do not rewrite it into a final prompt yet.57582. Rank video types.59 - Run:6061```bash62python "<skill-dir>/scripts/video_agent_backend.py" suggest --input "user idea"63```6465 - Present the top 3 to 5 results as numbered options.66 - For each option, include:67 - type name68 - one-sentence use case69 - default duration and ratio70 - short reason why it matches71723. After the user chooses a type, build a prompt preview.73 - Run:7475```bash76python "<skill-dir>/scripts/video_agent_backend.py" build ^77 --input "user idea" ^78 --type cinematic-story79```8081 - Show:82 - current prompt preview83 - current parameter summary84 - a short numbered list of tunable options85864. If the user adjusts settings, rerun `build` with explicit parameters.87 - Supported parameters:88 - `--duration 5|8|10|12`89 - `--ratio 9:16|16:9|1:1|4:3`90 - `--motion light|medium|strong`91 - `--style realistic|anime|cinematic|original`92 - `--brightness moody|normal|bright`93 - `--subtitle off|on`94 - `--dream-filter off|on`95 - `--notes "extra user constraint"`96975. Before generation, show the final prompt and ask for confirmation.98 - Use a short confirmation question such as:99 - "Final prompt and parameters are ready. Generate now?"1001016. After explicit confirmation, generate the video.102 - Run:103104```bash105python "<skill-dir>/scripts/generate_ark_video.py" ^106 --prompt "final prompt text" ^107 --output "C:\path\to\result.mp4"108```1091107. Report success or failure clearly.111 - On success, give the downloaded file path and task id if available.112 - On failure, bucket the issue into one of:113 - API key or auth problem114 - network or polling problem115 - task failed remotely116 - response did not include a downloadable video URL117118## Important implementation notes119120- The bundled generator script intentionally mirrors the existing HTTP + polling pattern already used in this workspace.121- The current API request sends a text prompt payload only. Duration, ratio, motion, style, and other controls are encoded into the prompt text unless you later extend the API payload.122- The generator script reads credentials from environment variables first:123 - `ARK_API_KEY`124 - `VOLCENGINE_ARK_API_KEY`125- Optional environment variables:126 - `ARK_VIDEO_MODEL`127 - `ARK_VIDEO_TASKS_URL`128129## Conversation rules130131- Do not skip the type-selection step unless the user explicitly says they already know the type.132- Do not ask broad open-ended questions if a numbered choice is possible.133- If the user says "more realistic", "more cinematic", "shorter", "vertical", or similar, treat that as a parameter update and keep moving.134- If the user says "generate", "go", or "就这样生成", show the final prompt once and ask for one explicit confirmation unless they already confirmed in the same message.135136## When to read references137138- Read [references/video-types.md](references/video-types.md) when you need the fixed type list, defaults, or category-specific prompt leads.139- Read [references/usage-guide.md](references/usage-guide.md) when you need example conversations, sample commands, or the user-facing tutorial flow.