---
name: project-step1552-narrative-variety-v03-2026-08-29
description: "STEP 1552 v0.3 narrative variety arc 3/5 — attribute narrativeVariants[] + scenario atmospherePostfixes[]、 「事件の余韻」 template based (LLM 代替)"
metadata: 
  node_type: memory
  type: project
  originSessionId: c922ed16-8768-46a2-904a-a44edbee09b5
  modified: 2026-08-28T23:25:26.411Z
---

# STEP 1552: v0.3 Narrative Variety (arc 3/5)

**Date**: 2026-08-29
**Arc**: v0.3 5-step arc (3/5)

## 実装

LLM 呼出しは browser では offline 難、 代替として **template variety + scenario postfix** を実装。

### AttributeSpec.narrativeVariants?: string[]
- 5 attribute (leftHanded / wearsGlasses / medic / tall / smoker) に 3-4 variant 追加
- Generator が pickRandom で選択、 backward compat: 未指定 attribute は evidenceNarrative 単体
- 最初の variant は evidenceNarrative と同一 (initial 一致で backward compat)

### Scenario.atmospherePostfixes?: string[]
- 3 scenario (villa / train / shrine) に 3 postfix 追加
- 生成の最後 fact に 「余韻」 として append (scene-closing decoration)
- backward compat: 未指定 scenario は postfix なし

### 例
- villa scenario の 余韻: 「外は雪が音もなく降り続いている。」 / 「暖炉の火が既に消えかけている。」
- shrine 余韻: 「境内には雨に濡れた榊の香りが漂っていた。」
- Generator が random pick、 「同じ scenario でも読後感が違う」 実現

## Test 10/10 + backward compat 全通過

- STEP 1552: 10/10 (5 section: variety / postfix / pool populated / scenario populated / deterministic)
- STEP 1538: 43/43
- STEP 1543: 16/16
- STEP 1545: 80/80
- STEP 1548: 18/18
- Total: 167/167 clean

## Honest scope

- 5/12 attribute に variants (残 7 は evidenceNarrative 単体、 v0.4+ で拡充)
- 3/10 scenario に postfix (残 7 は postfix なし)
- 「事件の余韻」 は template-selected postfix (LLM 生成の 詩的 prose ではない)
- 余韻 は最後 fact のみに append (facts の途中に散らばると読みにくい)
- 「narrative variety で世界初」 主張ゼロ、 pedagogical template rotation の standard パターン
