{
  "schemaVersion": 1,
  "studyId": "blueprint-31",
  "codingVersion": "cue-codebook-v1.1",
  "frozenBeforeSummaryGeneration": false,
  "unit": "One catalog record, not one user, experiment, successful video or market demand observation.",
  "textField": "prompt only; no generated title, description, mapped category or tags are coded.",
  "normalization": "Unicode NFKC, casefold, collapse Unicode whitespace, then strip.",
  "labelsMutuallyExclusive": false,
  "counting": "At most one positive membership per label per record; all matched label families are retained.",
  "negativeCuePolicy": "Split the preceding 100 normalized characters at punctuation or but/however/instead, then suppress a hit only if that trailing clause ends with an explicit English negator plus up to eight words, or a listed Chinese negator within twelve characters. This is a finite lexical filter, not semantic negation resolution.",
  "negativePrefixRegex": "(?:\\b(?:no|not|never|without|avoid|do not|must not)(?:\\s+[a-z0-9\\x27-]+){0,8}\\s+|(?:不要|不得|禁止|不能|不出现|避免|没有|无)[^，。；;!?！？:]{0,12})$",
  "negativePrefixWindowChars": 100,
  "limitations": [
    "Quoted text, ambiguous words, indirect intent and longer negation scope can be misclassified. A matching term is a coding cue, not a validated use case.",
    "No confidence score, visual quality rating, success rate, demand estimate or traffic estimate is produced.",
    "Unmatched records mean no matching codebook phrase, not no purpose.",
    "The codebook was authored for this fixed snapshot; it is not a trained classifier or independently validated semantic annotation.",
    "The lexicon is English/Chinese only; it does not translate or infer intent for other languages."
  ],
  "labels": [
    {
      "id": "product_promotion",
      "label": {
        "en": "Product / promotion cues",
        "zh": "商品／推广线索"
      },
      "regex": "\\b(?:advert(?:isement|isements|ising|s)?|ad\\s+(?:film|concept|spot|campaign|video)|commercial(?:s)?|campaign(?:s)?|e[- ]?commerce|product(?:s)?|brand\\s+(?:film|video|campaign)|ugc)\\b|商品|产品|广告|营销|电商|品牌短片|推广|促销",
      "matchCountPerRecord": "binary"
    },
    {
      "id": "story_drama",
      "label": {
        "en": "Story / drama cues",
        "zh": "故事／戏剧线索"
      },
      "regex": "\\b(?:story|storytelling|stories|drama|narrative|trailer|screenplay|sitcom|plot)\\b|剧情|叙事|短剧|故事|预告片|悬疑|喜剧",
      "matchCountPerRecord": "binary"
    },
    {
      "id": "music_performance",
      "label": {
        "en": "Music / performance cues",
        "zh": "音乐／表演线索"
      },
      "regex": "\\b(?:music[ -]video|mv|rap|rapper|rapping|singing|sings|song|dance|dancing|concert)\\b|音乐视频|说唱|演唱|舞蹈|跳舞|音乐短片",
      "matchCountPerRecord": "binary"
    },
    {
      "id": "interface_game",
      "label": {
        "en": "Interface / game cues",
        "zh": "界面／游戏线索"
      },
      "regex": "\\b(?:game|gameplay|gaming|user\\s+interface|ui|landing\\s+page|web\\s+page|webpage|website|hud)\\b|游戏|界面|网页|页面滚动|操作面板",
      "matchCountPerRecord": "binary"
    },
    {
      "id": "instruction_process",
      "label": {
        "en": "Instruction / process cues",
        "zh": "教学／操作流程线索"
      },
      "regex": "\\b(?:tutorial|how\\s+to|step[ -]by[ -]step|demonstrat(?:e|es|ion|ions)|instructional|training\\s+video|robotic\\s+arm|pick\\s+and\\s+place)\\b|教程|教学|步骤|演示|机械臂|制作过程|工艺流程",
      "matchCountPerRecord": "binary"
    },
    {
      "id": "graphic_title",
      "label": {
        "en": "Graphic / title cues",
        "zh": "图形／片头线索"
      },
      "regex": "\\b(?:dynamic\\s+poster|poster\\s+video|motion\\s+graphics?|typography|title\\s+sequence|logo\\s+reveal|text\\s+animation|kinetic\\s+typ(?:e|ography))\\b|字幕驱动|动态海报|动态图形|动态文字|文字动画|片头|标志揭示",
      "matchCountPerRecord": "binary"
    },
    {
      "id": "documentary_lifestyle",
      "label": {
        "en": "Documentary / lifestyle cues",
        "zh": "纪录／生活场景线索"
      },
      "regex": "\\b(?:vlog|documentary|travel\\s+(?:film|video)|expedition\\s+footage|lifestyle\\s+(?:video|vlog)|nature\\s+film|landscape\\s+video)\\b|纪录|考察|旅行视频|日常vlog|生活vlog|风景短片",
      "matchCountPerRecord": "binary"
    },
    {
      "id": "character_intro",
      "label": {
        "en": "Character introduction cues",
        "zh": "角色介绍线索"
      },
      "regex": "\\b(?:character\\s+(?:introduction|intro|reveal|showcase)|character\\s+pv|character\\s+portrait)\\b|角色介绍|角色展示|人物pv|角色pv",
      "matchCountPerRecord": "binary"
    }
  ],
  "revisionReason": "The first deterministic sanity pass revealed explicit negations counted as positive cues in mmh3_008 and x-2086464559439855938. v1.1 adds a documented bounded clause-negation filter; all final statistics are rerun, and v1.0 is retained as method history.",
  "negativeClauseBreakRegex": "[.;!?。！？；，,:]|\\b(?:but|however|instead)\\b"
}
