name: 制服風ブレザー(成人コスプレ)
slug: uniform_blazer
category: 制服風
# ★成人コスプレとして扱う。pipeline/guard.py の L3' は
#   "school uniform" 等が positive に出るとき COUNTERWEIGHT("cosplay" / "years old" 等)を必須にする。
#   既存の学生服カタログ(wildcards/.../outfit_cosplay.txt)と同じく、各 state に cosplay を同梱する規約に従う。
#   舞台側も education_adult(全員成人)のみを使う。
adult_guard: true
material: ウール
color_default: ネイビー
# ★★2026-08-11(段1): 手書きの6段から「共通の脱げ方(札)」へ切り替えた。
#   ・脱げ方は衣装ごとに書かず pipeline/undress.py の表を全衣装で共有する
#   ・同じ段でも1枚ごとに変わる(手書きは同じ段が一字一句同じだった)
#   ★この切り替えで手書き時代の実画像検証は無効。verified は false へ戻し、
#     6枚テストで見てから付け直す。手書きの states は消していない(札が組めない時の受け皿)。
undress_mode: wildcard
# ★元から色が分かれている。下着だけ足した
parts:
  top: white dress shirt
  bottom: navy pleated skirt
  underwear_top: white bra
  underwear_bottom: white panties
  underwear: white bra, white panties
  outer: navy blazer
  # ★★2026-08-16 ユーザー要望「ネクタイではなくリボンのほうが女子高生っぽい」。
  #   実測: neck_ribbon 209,988 / red_ribbon 263,633(どちらも実在)。
  #   `red_neck_ribbon` という語は 0枚なので、色は前置きにする(`red neck ribbon`)。
  #   ★手書きの states(下の受け皿)は necktie のままにしてある。
  #     いまは札で動いているので絵に出るのはこの accessory の行だけ。
  accessory: red neck ribbon
# ★色は「毎回すべての状態に書く」。書かない状態はモデルが色を決め直すため、
#   作品の途中で色が変わる。実測(2026-08-03): 着衣は赤ネクタイ、着崩れは青ネクタイになった。
#   ネクタイだけでなく、ブレザー(navy)・シャツ(white)・スカート(navy)も同じ理由で毎回書く。
states:
  intro: school uniform cosplay, navy blazer, white dress shirt, red necktie, navy pleated
    skirt, fully dressed, neatly worn
  approach: school uniform cosplay, navy blazer open, red necktie loosened, white dress
    shirt collar open, navy pleated skirt, shirt hem untucked
  foreplay: school uniform cosplay, navy blazer off, white dress shirt unbuttoned, red
    necktie hanging loose, bra pushed up, breasts exposed, navy pleated skirt
  main: school uniform cosplay, white dress shirt open and hanging loose, red necktie
    hanging loose, breasts exposed, navy pleated skirt hiked up, panties pulled aside
  climax: school uniform cosplay, white dress shirt off one shoulder, red necktie hanging
    loose, breasts exposed, navy pleated skirt pushed up to her waist, panties pulled
    off one leg
  afterglow: completely nude, school uniform cosplay clothes tossed aside, navy blazer
    and navy pleated skirt on the floor, red necktie loose around her neck
states_ja:
  intro: ブレザーもネクタイもきちんと着た姿。
  approach: ブレザーの前を開け、ネクタイをゆるめ、襟元がくつろぐ。
  foreplay: ブレザーを脱ぎ、シャツのボタンを外して胸を出す。スカートはまだそのまま。
  main: シャツをはだけ、スカートをたくし上げ。脱がずに露出。
  climax: シャツは片肩から落ち、スカートは腰まで。下着は片足に。
  afterglow: 制服は脱げて床に、ネクタイだけ首に残った、ほぼ全裸の事後姿。
# ★2026-08-16: **0枚の語を取り除いた**(書いてあっても絵に効かない)。
#   `partially dressed` `fully dressed` `clothed` `neatly worn` `wearing ◯◯`
#   `see-through` `transparent clothes` などは全部 0枚で、この仕組みは
#   ほぼ丸ごと効いていなかった(実測 65語中56語が0枚)。
#   いまは共通の札(outfits/_undress_wildcards.yaml の stage_negative)と、
#   「全裸の文のときだけ服の名前を打ち消す」仕組み(pipeline/recipe.py)が受け持つ。
state_negative: {}
# 実画像で確認済み(2026-08-03/04)。
#   intro / approach = Claude が目視(SFW・statetest と 6枚テスト)
#   foreplay / main / climax / afterglow = ユーザーが目視(露骨のため)
#   6枚とも指示どおりに展開し、色(ネイビー/白/赤)が全段階でそろうことを確認。
# ★2026-08-11: 札へ切り替えたので手書き時代の検証は無効。6枚テストで付け直す。
verified:
  intro: false
  approach: false
  foreplay: false
  main: false
  climax: false
  afterglow: false
