One-sentence positioning
Input a piece of script/copy plain text, output "who tells it" (persona) + "where it is told" (scene, an independent entity, not a subordinate field of the persona) + how the two are bound to the original script lines, with all three able to point back verbatim to the source text. It belongs to the L2 creative generation layer of the 100x system, corresponding to the "3.1 Persona × Scene" step.
When to trigger
The user says:
- "Assign a persona to this script" / "Who would be more suitable to tell this script" / "How should this persona be defined"
- "How should this scene be set" / "What scene is suitable for shooting this ad" / "Where is it suitable to shoot this script"
- "who should deliver this script" / "what persona fits this product"
- "what setting fits this ad" / "where should this be filmed"
- Or directly provide a piece of script copy and request "assign a character and setting" / "assign a character and setting"
Input
Minimum input (Category A, required):source_script——Complete script/copy plain text. This skill does not accept video files, it only consumes text.
Optional upstream output (Category C, silently skipped when missing, non-blocking, and never requires the user to run other skills first):
100x-segment produced segments[](if it exists,pairings[].segment_ref can be backfilled; when missing, the entire field is omitted, relying on script_span_quote for independent positioning).
Output
For the structure see schema.json:PersonaSceneBundle = source_script(original text echo, for evidence verification) +
personas(persona map, independent entities) + scenes(scene map,independent entities, peer-level with personas, not a string field of the persona)+ pairings(binding table of persona × scene × original script lines) + meta. Optionally render a human-readable Markdown summary (persona list / scene list / pairing comparison table).
Core constraints (4 axioms, see axioms.md)
- Scenes are independent entities, referenced by ID, not an embedded field of the persona——
personas/scenesare two peer-level maps,pairings[]thepersona_ref/scene_refin it must actually exist in the corresponding map (referential integrity) - The persona's authority/audience basis must be a verbatim substring of the original text, no fabrication allowed——
authority_evidence_quote/audience_pain_quote/script_span_quotemust all be findable verbatim insource_script. Known limitation (not a hidden defect): A verbatim substring can only prove "this sentence exists in the original text," not that "the semantic direction of this sentence in the persona field has not been used in reverse"——for example, extracting a self-doubting sentence ("if you don't believe me") and using it in reverse as an authority anchor is also a legal substring. The current mechanism includes one layer of closed-set self-doubt phrase detection (a hit requires manual disclosure, seeaxioms.mdAxiom 2), butreversals of the irony/quote-refutation framework type are still undetectable, this is the ceiling of string matching, seeaxioms.mdAxiom 2, "Mechanism ceiling and mitigation measures" section - Scenes must be specific to micro-coordinates, no writing generic locations——closed-set generalization word list rejection + at least 2 specific props
- Personas and scenes have zero orphans; once created they must be referenced by at least one pairing——do not pile them up just to "look like a complete matrix"
Three-phase process
See workflow.md: Phase 1 persona reverse-engineering (scan Authority/Pain signals in the script, extract evidence sentences verbatim) → Phase 2 scene modeling (independently build an entity for each scene clue + bind it to the persona/original script lines + zero-orphan self-check) → Phase 3 output (assemble JSON, all Axioms 1-4 pass).
Independent invocation guarantee
Category A (source_script) missing → fixed refusal script follow-up, no guessing on the user's behalf, no substituting video files. Category C
(upstream 100x-segment output) missing → silently skip,never require the user to run other skills first。
Banned words
let me / hope / perhaps / probably / maybe / possibly / let's; AI customer-service tone (as an AI / I'd be happy to /
feel free to); do not fabricate qualifications/certifications/testimonials/performance data not present in the script source; do not hardcode any customer category dictionary;
micro_coordinate do not use closed-set generalization words (see axioms.md Axiom 3: somewhere/whatever/some place/TBD/
somewhere/anywhere, etc.).
Routing (recommended, not a hard dependency)
- Already have a segmented script and want to pair characters and scenes by segment rather than for the whole piece → segmentation-type skill (if already built,
segment_refcan be backfilled) - Want to convert character/scene descriptions into AI video generation prompts → prompt assembly-type skill (if already built)
- Want to first do search keywords to find reference images before deciding on characters and scenes → search keyword-type skill (if already built)
- Want to go back to the entry point and re-triage → 100x system main entry (if already built)
All of the above are "recommend on demand after output," not prerequisites; when the corresponding skill has not yet been built, this skill can still work independently.
Factory self-check
Run node scripts/validate.js --selftest to verify.schema.json The structural-layer constraints declared by (
required/additionalProperties/enum/pattern/minItems , etc.) are actually executed by scripts/validate.js
inside ajv(a real JSON Schema draft-07 validator,package.json the declared devDependency,
first npm install then run), not a hand-written field enumeration. Axiom 1 (reference integrity), Axiom 2 (evidence
substring), and Axiom 4 (zero orphans) are three types of cross-object/cross-field aggregation rules that vanilla JSON Schema structurally cannot express;
these three items are supplemented by hand-written code in scripts/validate.js . In addition, it also includes
checkAuthorityHedgeRisk(a partial mitigation of Axiom 2; when a closed-set self-doubt phrase is hit, it requires meta.warnings
disclosure, otherwise FAIL)——this is only a mitigation, not a complete fix, semantic inversion of evidence sentences in irony/quote-rebuttal frameworks still cannot be detected,--selftest item 10 truthfully leaves a real regression case of "currently passes" to prove this
boundary, rather than claiming it has been fully closed off:
npm install # 首次使用先装 ajv
node scripts/validate.js <bundle.json> [bundle2.json ...] # 校验产出
node scripts/validate.js --selftest # 跑内置回归用例
Source
This skill is an independent build based on criteria-style references and field structure specifications. For the source of each criterion, the source of field design, and design decisions, see sources.md。