#552: 16 hand-authored contradiction monologue lines (8 detective + 8 smuggler) for the Sera/Kael FRIEND arc — Phase 2 blindsiding, Phase 2 secondary processing beats, Phase 3 pattern recognition with accumulated context. Cognitive-dissonance-not-accusation tone per D-083.
#330: 20 diegetic tutorial monologue lines (10 per character) teaching movement, fog, sound, NPC interaction, and insert/HUD through character voice. Fire-once on first-time events, _tut_ ID discriminator.
D-035 mood vocabulary enforced (replaced alert/unsettled with valid focused/anxious)
Source-named contradiction monologue for both detective and smuggler.
Detective: Sera/Kael location contradiction (Phase 2 blindsiding +
Phase 3 pattern recognition with Torek avoidance). Smuggler: Kael in
B-7 with unrecognized contact (Phase 2 gut reaction + Phase 3
behavioral pattern accumulation). Cognitive-dissonance-not-accusation
tone per D-083. 16 hand-authored lines total (8 per character).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
10 lines per character teaching 5 core mechanics diegetically:
movement/exploration, fog of perception, sound model, NPC interaction,
insert/HUD. Detective lines in analytical register, smuggler lines in
street-smart fragments. Fires on first-time events (first_move,
first_fog_encounter, first_sound_heard, first_npc_proximity,
first_insert_open, etc.). _tut_ ID discriminator, cooldown -1.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds explicit exception to worktree boundary rules: agents may
remove their own worktree's stale index.lock file from the shared
.git directory, but never another worktree's lock.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Contradiction files:
- Add role/access/trust back to all lines (schema-required)
- prerequisite: → prerequisites: (plural, matching schema)
- Remove cooldown entirely — fire-once enforced by trigger semantics
(contradiction_detected fires once per KG state change), not magic numbers
Tutorial files:
- Remove cooldown: -1 — same reasoning, first_* triggers are one-time
Server:
- Document cooldown: Option<i32> on MonologueLine — None means no
per-line cooldown, fire-once relies on trigger design
CHANGELOG:
- Move displaced entries from ### Fixed back to ### Changed
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Schema fixes surgical, no prose touched. Voice intact.
Miri (World Consistency): APPROVE (overruled on naming)
Miri flagged prerequisite (singular per D-035 text) vs prerequisites (plural). Schema JSON, Rust struct, and all existing files use plural — current files are correct.
Duration inconsistency (con_006 vs con_008) remains as suggestion.
Verdict: APPROVED
## Re-Review: copy → main (#61) — Round 3
### Hoshe (QA): APPROVE
All 4 round 2 issues resolved:
| # | Issue | Status |
|---|-------|--------|
| A | role/access/trust on contradiction lines | FIXED |
| B | prerequisites: (plural) matches schema | FIXED |
| C | cooldown: -1 | FIXED (field omitted, fire-once via trigger) |
| D | CHANGELOG sections | FIXED |
Note: prerequisites.entities sub-key doesn't match schema entity_attributes/facts/relationship — pre-existing, needs ticket alongside #550.
### Paula (Narrative Depth): APPROVE
Schema fixes surgical, no prose touched. Voice intact.
### Miri (World Consistency): APPROVE (overruled on naming)
Miri flagged prerequisite (singular per D-035 text) vs prerequisites (plural). Schema JSON, Rust struct, and all existing files use plural — current files are correct.
Duration inconsistency (con_006 vs con_008) remains as suggestion.
### Verdict: APPROVED
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
_tut_ID discriminator.alert/unsettledwith validfocused/anxious)New Files
monologue/detective/contradiction-detected.yaml— 8 lines (3 Phase 2 primary, 2 Phase 2 secondary, 3 Phase 3)monologue/smuggler/contradiction-detected.yaml— 8 lines (same structure, smuggler voice)monologue/detective/tutorial.yaml— 10 lines, 5 mechanics x 2 linesmonologue/smuggler/tutorial.yaml— 10 lines, same 5 mechanicsDecisions Referenced
Test Plan
PR Review: copy → main (#61)
Hoshe (QA): REQUEST_CHANGES
situationenum values:reflectionandcontradictionnot in canonical situations.yaml. Will fail engine parse.prerequisites:(plural) should beprerequisite(singular) per D-035. Plural key will be silently ignored — all prerequisite gates broken.contradiction_detected/contradiction_processingnot in canonical triggers enum. Missing disclosure note.location: contradiction-detectedis an event name, not a location ID. Content loader may fail to index.### Changedsections in [Unreleased] block.Paula (Narrative Depth): APPROVE
Strong voice discipline. 6 suggestions on epistemic options, threat language, Devra NPC existence, tutorial line pacing, location-checking habit seeding, trigger ticket cross-refs.
Miri (World Consistency): REQUEST_CHANGES
prerequisitesuses undocumented flat-list format vs canonicalfacts/entity_attributes/relationshipsub-structures.contradiction_processingtrigger undefined in any D-record.access,trust,role) on monologue lines — MonologueLine has no such fields.phasefield undeclared in schema. Move totagsor add to authoring-only fields.Verdict: CHANGES REQUESTED
Critical: Fix
situationenum values,prerequisites→prerequisitekey name, prerequisite structure format, remove dialogue-only fields from monologue lines.Re-Review: copy → main (#61) — Round 2
Hoshe (QA): REQUEST_CHANGES
Original issues fixed: 4/8. New issues introduced: 4.
situationenum valuesprerequisiteskey naminglocation: contradiction-detectedphasefieldrole/access/trustremoved from contradiction files — schema requires themprerequisite:singular doesn't match schemaprerequisites:pluralcooldown: -1violates schema minimum: 0### Changedentries in### FixedsectionPaula (Narrative Depth): APPROVE
Schema fixes preserved voice. 2/6 suggestions addressed (Devra NPC confirmed, tut_010 seeds habit).
Miri (World Consistency): REQUEST_CHANGES
contradiction_processingundefinedphasefieldprerequisitevsprerequisitesnaming_con_ID discriminator vs canonical regexVerdict: CHANGES REQUESTED
Critical fixes needed:
prerequisite:→prerequisites:(plural) in both contradiction files — match schema + all existing filesrole: player_character,access: [public],trust: surfaceback to all contradiction lines — schema requires themcooldown: -1→ either usecooldown: 0or amend schema minimum### Fixedback to### ChangedRe-Review: copy → main (#61) — Round 3
Hoshe (QA): APPROVE
All 4 round 2 issues resolved:
Note: prerequisites.entities sub-key doesn't match schema entity_attributes/facts/relationship — pre-existing, needs ticket alongside #550.
Paula (Narrative Depth): APPROVE
Schema fixes surgical, no prose touched. Voice intact.
Miri (World Consistency): APPROVE (overruled on naming)
Miri flagged prerequisite (singular per D-035 text) vs prerequisites (plural). Schema JSON, Rust struct, and all existing files use plural — current files are correct.
Duration inconsistency (con_006 vs con_008) remains as suggestion.
Verdict: APPROVED
Pull request closed