One-line positioning
Input a prompt template id (or requirement description) + variables, and output the final generation prompt rendered verbatim and packaged for the target model (Veo/Seedance/ Jichuang). This belongs to the "prompt + model" step of the 100x system, connecting the upstream persona/scene/ search-keyword-type skills with the downstream AI generation models.
When to trigger
The user says:
- "Help me assemble a prompt" / "Fill in a template to produce a prompt" / "Which model should this video use" / "Generate a video prompt" / "Pick a template and pair it with variables"
- "compose a video prompt" / "fill in this template" / "which model should I use for this" / "generate an AI video prompt"
- Or directly provide a product/persona/scene description and ask for a prompt that can be fed directly to an image/video generation model
Input
Minimum input (Category A, mandatory):template_id(one of the 14 templates, see templates.json)
ora requirement description sufficient to uniquely match a template (category +use_whenscene, see workflow.md
Phase 1 Step 1); in that template variables[] , label all variables that do not contain "(optional)" must be provided
(do not guess on the user's behalf, do not fabricate specific appearance/dialogue content).
Soft supplements (Category B, if missing, fall back, see workflow.md Phase 1 Steps 2/4):label variables containing
"(optional)"; for video templates, the model selection (if missing, ask once; if still no answer, default to
model_hint[0])。
Optional upstream outputs (Category C, if missing, silently skip, do not block, and never require the user to run another skill first):
existing_refs_input(product/persona lock numbers established by previous calls, see Axiom 2).
Output
For the structure see schema.json:ComposedPromptBundle = template_id/category +
variables_used + rendered_body(the Chinese body text after verbatim interpolation, already containing realism_suffix)+
reference_locks(record of establishment or reference of product/persona locks) + (video template)model + video_unit
(final prompt packaged by model + duration) + meta. Optionally also render a human-readable summary (template name/
variable table/final prompt).
Core constraints (4 axioms, see axioms.md)
- The final prompt must replace the template body verbatim, with no paraphrasing or omission——
rendered_bodymust betemplates.jsonthe verbatim interpolation result of the corresponding template body (including expansion of square-bracket placeholders), not a free rewrite where "the meaning is roughly right" - Reference image number references must point to declared locks, and must not be fictitious——when a product/persona first appears, lock its appearance; afterward it must be written as
"reference image N product/persona", and N must actually exist in the established number set (Known limitation: what can be verified here
is only "whether the format is correct" and "whether the number actually exists"; it cannot verify "whether the first lock description itself is really specific
(complete product appearance elements / complete five elements for a persona: age + race + gender + clothing + appearance)"——
persona: "a person"、product_lock: "a thing"empty placeholder text like this can currently pass validation, becauseschema.json/scripts/validate.jsall only check string non-emptiness + format + number existence, and do not make semantic content judgments; heuristics such as minimum length were evaluated to plug this, but they would also mistakenly kill the template's own legitimate short examples, so they were not implemented, and this is truthfully recorded inaxioms.mdAxiom 2 "known boundary" section, still fully relying on the caller to followworkflow.mdPhase 1 Step 2's discipline of "ask when missing, do not fill in by imagination" - Scene variables must not contain lighting words; lighting is uniformly controlled by the suffix—
scene/scenes/place/roomsIf a class variable hits the closed-set lighting word list, it is rejected; weather words are allowed - Videos follow the selected model's duration cap and banned-word list, zero tolerance—veo 8.0s/seedance 10.0s + their respective
banned-word lists + fixed closing sentence;iChuang has no dedicated source material; only the narrative shot classification is validated, with no hard validation of duration/banned words
(known limitation: currently does not yet include dedicated axiom material for the iChuang model, see
sources.md);Known limitation (confirmed by real-corpus testing, not a paper assumption): the veo/seedance banned-word list is purely lexical word-boundary matching and cannot distinguish "professional" used as an AI cliché adjective (the target the banned-word list is meant to block, e.g. "professional lighting") from "professional" used as a truthful description of the speaker's real occupational identity (for example, when the speaker's real occupation is faithfully translated into English and contains this word)—a truthful description of a real identity will also be judged FAIL, and the only option is to rewrite it with a synonym that does not hit the word, seeaxioms.mdAxiom 4 "Known Boundaries" section
Three-phase process
See workflow.md: Phase 1 intake + validation (select template → variables in place → scene has no lighting words →
[video] select model → reference numbering context) → Phase 2 (verbatim rendering → bracket expansion → reference lock accounting →
[video] model wrapping → item-by-item self-check) → Phase 3 user-triggered rework (L1 single variable / L2 change model / L3
overall;there is no "non-English dialogue" branch—the template library hard rule requires dialogue to be in American English for the US TikTok market, with no
exceptions, see workflow.md Phase 3 table last row).
Independent invocation guarantee
Category A missing (no template can be selected + mandatory variables missing) → fixed rejection script to ask follow-up questions, no guessing on the user's behalf, no fabricating specific
appearance/dialogue content. Category B missing goes to degradation (optional variables handled according to the template's own semantics;model missing, ask once
then default). Category C (existing_refs_input) missing is silently skipped—this skill does not require the user to "first run
IMG-01 to build a product lock" before starting; on first occurrence, using a text description instead of a reference image is directly allowed.
Banned words
让我 / 希望 / 或许 / 大概 / 可能 / 也许 / 让我们; AI customer-service tone (as an AI / I'd be happy
to / feel free to); do not fabricate efficacy certifications/user testimonials not present in the script/copy; do not fabricate
product appearance/character details the user did not provide just to fill variables; for veo/seedance video packaging banned words see profiles/veo.md/
profiles/seedance.md(AI cliché words cinematic/stunning/flawless etc. + double quotation marks + markdown
fences; for the specific list see the corresponding file, not repeated here to avoid drifting out of sync with the script constant table).
Routing (recommended, not a hard dependency)
- No product/persona/scene material yet, only a piece of copy → character/scene-type skill (if already built)
- Want to find visual reference images first before deciding how to fill the template → search-keyword-type skill (if already built)
- The prompt is already done, want to batch-produce multiple variants → prompt-variation-type skill (if already built)
- Want to return to the entry point and re-triage → 100x system main entry (if already built)
All of the above are "recommend as needed after output," not prerequisites; if the corresponding skill has not yet been built, it does not affect this skill's independent work.
Factory self-check
Run node scripts/validate.js --selftest Validation. Axiom 1 (template reconstruction), Axiom 2 (reference lock
integrity), Axiom 4 (model-specific duration/banned words/ending sentence) are cross-file/cross-entry/large-vocabulary criteria,
schema.json(vanilla JSON Schema) cannot express them; what actually performs the determination is
scripts/validate.js:
npm install # 首次使用先装 ajv
node scripts/validate.js <bundle.json> [bundle2.json ...] # 校验产出
node scripts/validate.js --selftest # 跑内置回归用例
Source
This skill is built by combining a prompt template library with the adaptation rules of each mainstream model (Veo / Seedance):
templates.json Provides 14 sets of standardized prompt templates;profiles/veo.md and profiles/seedance.md
provides the packaging specification for the target model. The criteria system includes reference integrity, closed-set vocabulary detection, and model duration and banned word validation.
For detailed design decisions and source explanations, see sources.md。