From 26a5d6fafa64eb4a0fc37c247f1d949ed6b5c01f Mon Sep 17 00:00:00 2001 From: "Z. Cliffe Schreuders" Date: Wed, 14 Jan 2026 09:46:31 +0000 Subject: [PATCH] Add Mission 2 objectives verification document MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Created OBJECTIVES_VERIFICATION.md to confirm objectives are clear and constant: ✅ Verification Status: PASS - 5 well-defined objectives with descriptive titles - 15 specific tasks with explicit completion criteria - Consistent across all files (scenario.json.erb, SOLUTION_GUIDE.md, Ink scripts) - Progressive unlock structure ensures linear story flow - Multiple solution paths documented for flexibility Objectives Summary: 1. Infiltrate Hospital (3 tasks) - Active at start 2. Access IT Systems (3 tasks) - Unlocks after Objective 1 3. Exploit ENTROPY's Backdoor (4 tasks) - Unlocks after server room access 4. Recover Offline Backup Keys (3 tasks) - Unlocks after database flag 5. Make Critical Decisions (2 tasks) - Unlocks after Objectives 3 & 4 Cross-File Verification: ✅ scenario.json.erb: 5 objectives, 15 tasks ✅ SOLUTION_GUIDE.md: 5 objectives, 15 tasks (documented) ✅ Ink scripts: Reference tasks via #complete_task tags ✅ Global variables: Track objective states Progression Flow: Start → Obj 1 → Obj 2 → Obj 3 + Obj 4 → Obj 5 → Complete Completion Requirements: - Minimum (60%): 2+ VM flags, offline keys, both moral choices - Perfect (100%): All 15 tasks, 4 VM flags, 3 LORE fragments, Marcus protected Player-Facing Clarity: - Clear task titles guide player actions - Progressive unlocking prevents confusion - Multiple solution paths (social, stealth, combat) - No ambiguity in completion criteria Optional Content (not required for completion): - Marcus Protection Choice (moral decision) - LORE Fragment Collection (3 fragments for narrative depth) Result: Mission 2 objectives are clear, constant, and suitable for: - Player guidance during gameplay - Completion tracking for mission scoring - Educational assessment of learning outcomes - Narrative pacing and tension building --- .../OBJECTIVES_VERIFICATION.md | 313 ++++++++++++++++++ 1 file changed, 313 insertions(+) create mode 100644 scenarios/m02_ransomed_trust/OBJECTIVES_VERIFICATION.md diff --git a/scenarios/m02_ransomed_trust/OBJECTIVES_VERIFICATION.md b/scenarios/m02_ransomed_trust/OBJECTIVES_VERIFICATION.md new file mode 100644 index 0000000..51a69e1 --- /dev/null +++ b/scenarios/m02_ransomed_trust/OBJECTIVES_VERIFICATION.md @@ -0,0 +1,313 @@ +# Mission 2: Objectives Verification Report + +## Purpose +This document verifies that Mission 2 "Ransomed Trust" has a **clear and constant** set of objectives across all scenario files and documentation. + +## Verification Status: ✅ VERIFIED + +--- + +## Objectives Structure + +Mission 2 has **5 main objectives** (aims) with **15 total tasks**. + +### Summary Table + +| # | Objective ID | Title | Tasks | Status at Start | +|---|--------------|-------|-------|-----------------| +| 1 | infiltrate_hospital | Infiltrate Hospital | 3 | Active | +| 2 | access_it_systems | Access IT Systems | 3 | Locked | +| 3 | exploit_entropy_backdoor | Exploit ENTROPY's Backdoor | 4 | Locked | +| 4 | recover_offline_keys | Recover Offline Backup Keys | 3 | Locked | +| 5 | make_critical_decisions | Make Critical Decisions | 2 | Locked | + +**Total: 5 Objectives, 15 Tasks** + +--- + +## Detailed Objectives Breakdown + +### Objective 1: Infiltrate Hospital +**Status:** Active at mission start +**Order:** 0 +**Description:** Enter St. Catherine's Regional Medical Center and meet key staff + +#### Tasks: +1. **arrive_at_hospital** - Arrive at hospital reception + - Type: `enter_room` + - Target: `reception_lobby` + - Status: Active (auto-completes on spawn) + +2. **meet_dr_kim** - Meet Dr. Sarah Kim (Hospital CTO) + - Type: `npc_conversation` + - Target: `dr_sarah_kim` + - Status: Locked → Unlocks after task 1 + +3. **talk_to_marcus** - Interview IT administrator Marcus Webb + - Type: `npc_conversation` + - Target: `marcus_webb` + - Status: Locked → Unlocks after task 2 + +--- + +### Objective 2: Access IT Systems +**Status:** Locked (unlocks after Objective 1) +**Order:** 1 +**Description:** Gain access to hospital's IT infrastructure and server room + +#### Tasks: +1. **obtain_password_hints** - Gather SSH password hints from Marcus + - Type: `collect_items` + - Target: `password_sticky_note` (or NPC dialogue) + - Status: Locked + +2. **decode_ransomware_note** - Decode Base64 ransomware message + - Type: `custom` + - Location: Infected terminal (IT Department) + - Status: Locked + +3. **access_server_room** - Access the server room + - Type: `enter_room` + - Target: `server_room` + - Methods: RFID keycard (high trust) OR lockpicking (medium difficulty) + - Status: Locked + +--- + +### Objective 3: Exploit ENTROPY's Backdoor +**Status:** Locked (unlocks after accessing server room) +**Order:** 2 +**Description:** Use ProFTPD vulnerability to access encrypted backups + +#### Tasks: +1. **submit_ssh_flag** - Submit SSH access flag + - Type: `submit_flags` + - Flag: `flag{ssh_access_granted}` + - Reward: ENTROPY server credentials intercepted + - Status: Locked + +2. **submit_proftpd_flag** - Submit ProFTPD exploitation flag + - Type: `submit_flags` + - Flag: `flag{proftpd_backdoor_exploited}` + - Reward: Shell access to backup server + - Status: Locked + +3. **submit_database_flag** - Submit database backup flag + - Type: `submit_flags` + - Flag: `flag{database_backup_located}` + - Reward: Intel reveals safe location (Emergency Equipment Storage) + - Status: Locked + +4. **submit_ghost_log_flag** - Submit Ghost's operational log flag + - Type: `submit_flags` + - Flag: `flag{ghost_operational_log}` + - Reward: Unlocks "Ghost's Manifesto" LORE fragment + - Status: Locked + +--- + +### Objective 4: Recover Offline Backup Keys +**Status:** Locked (unlocks after database backup flag submission) +**Order:** 3 +**Description:** Find and crack PIN safe for offline backup encryption keys + +#### Tasks: +1. **locate_safe** - Locate PIN safe in Emergency Equipment Storage + - Type: `enter_room` + - Target: `emergency_equipment_storage` + - Route: hallway_south → emergency_equipment_storage + - Status: Locked + +2. **gather_pin_clues** - Find clues for 4-digit safe PIN + - Type: `custom` + - Clues: + - Hospital founding plaque: "Founded 1987" + - Dr. Kim's sticky note: "Safe combination: founding year" + - Red herring: Emma's photo (2018) + - Answer: **1987** + - Status: Locked + +3. **crack_safe_pin** - Crack PIN safe (code: 1987) + - Type: `unlock_object` + - Target: `emergency_storage_safe` + - Methods: PIN 1987 OR PIN cracker device + - Reward: Offline backup encryption keys (USB drive) + - Status: Locked + +--- + +### Objective 5: Make Critical Decisions +**Status:** Locked (unlocks after BOTH Objectives 3 AND 4 complete) +**Order:** 4 +**Description:** Decide how to recover hospital systems and handle the crisis + +#### Tasks: +1. **make_ransom_decision** - Decide on ransom payment + - Type: `custom` + - Location: Ransom Interface Terminal (server_room) + - Options: + - **Pay Ransom:** 2.5 BTC ($87K), 1-2 patient deaths, 2-4 hour recovery + - **Manual Recovery:** $0 to ENTROPY, 4-6 patient deaths, 12-hour recovery + - Global Variable: `paid_ransom` (true/false) + - Status: Locked + +2. **decide_hospital_exposure** - Decide whether to expose hospital negligence + - Type: `custom` + - Location: Closing debrief conversation + - Options: + - **Expose:** Public scandal, Dr. Kim fired, sector-wide security improvements + - **Quiet Resolution:** Dr. Kim keeps job, internal improvements only + - Global Variable: `exposed_hospital` (true/false) + - Status: Locked + +--- + +## Optional Content (Not Required for Completion) + +### Marcus Protection Choice +**Type:** Optional moral choice (not a formal task) +**Trigger:** Finding scapegoating email in IT filing cabinet +**Options:** +- Protect Marcus (document warnings) → `marcus_protected` = true +- Warn Marcus to resign → `marcus_protected` = false +- Ignore → `marcus_protected` = false + +**Impact:** Affects Marcus's career outcome in debrief + +### LORE Fragment Collection +**Type:** Optional collectibles (not formal tasks) +**Fragments:** +1. **Ghost's Manifesto** - VM filesystem (requires flag 4 submission) +2. **CryptoSecure Services Log** - IT filing cabinet (lockpick easy) +3. **Zero Day Syndicate Invoice** - Dr. Kim's safe (PIN 1987) + +**Impact:** Unlocks additional narrative content and campaign connections + +--- + +## Cross-File Verification + +### Files Checked: +1. ✅ `scenario.json.erb` (lines 41-183) - **5 objectives, 15 tasks** +2. ✅ `SOLUTION_GUIDE.md` (lines 55-183) - **5 objectives, 15 tasks documented** +3. ✅ Ink dialogue scripts reference task completion via `#complete_task` tags +4. ✅ Global variables track objective states + +### Consistency Verification: + +| Aspect | scenario.json.erb | SOLUTION_GUIDE.md | Status | +|--------|-------------------|-------------------|--------| +| **Objective Count** | 5 | 5 | ✅ Match | +| **Task Count** | 15 | 15 | ✅ Match | +| **Objective IDs** | infiltrate_hospital, access_it_systems, exploit_entropy_backdoor, recover_offline_keys, make_critical_decisions | Same | ✅ Match | +| **Task IDs** | arrive_at_hospital, meet_dr_kim, talk_to_marcus, obtain_password_hints, decode_ransomware_note, access_server_room, submit_ssh_flag, submit_proftpd_flag, submit_database_flag, submit_ghost_log_flag, locate_safe, gather_pin_clues, crack_safe_pin, make_ransom_decision, decide_hospital_exposure | Same | ✅ Match | +| **Unlock Conditions** | Progressive unlock structure | Documented | ✅ Match | +| **Descriptions** | Clear, concise | Expanded with context | ✅ Consistent | + +--- + +## Progression Flow + +### Linear Progression: +``` +Start → Objective 1 (Active) + ↓ +Objective 1 Complete → Unlock Objective 2 + ↓ +Objective 2 (Access Server Room) → Unlock Objective 3 + ↓ +Objective 3 (Submit Flags) → Unlock Objective 4 + ↓ +Objective 3 + 4 Both Complete → Unlock Objective 5 + ↓ +Objective 5 Complete → Mission Complete +``` + +### Task Dependencies: +- **Objective 1:** Linear (1 → 2 → 3) +- **Objective 2:** Can be completed in any order, but access_server_room gates Objective 3 +- **Objective 3:** 4 flags can be submitted in any order (SSH → ProFTPD → Database → Ghost Log recommended) +- **Objective 4:** Linear (1 → 2 → 3) +- **Objective 5:** Both decisions required, order flexible + +--- + +## Clarity Assessment + +### ✅ Objectives are CLEAR: +- Each objective has a descriptive title +- Each objective has a clear description of purpose +- Each task has specific completion criteria +- Task types are well-defined (enter_room, npc_conversation, collect_items, submit_flags, unlock_object, custom) +- Target rooms, NPCs, items, and objects are explicitly named +- Multiple solution paths documented (keycard vs lockpicking, social vs investigation) + +### ✅ Objectives are CONSTANT: +- Objectives defined once in `scenario.json.erb` +- Same 5 objectives, same 15 tasks across all documentation +- No conflicting task lists +- No ambiguous completion criteria +- Progressive unlock structure ensures consistent player experience +- Global variables track persistent state + +--- + +## Player-Facing Clarity + +### In-Game Objective Display: +Players will see objectives in this order: +1. ✅ **Objective 1: Infiltrate Hospital** (Active at start) +2. 🔒 **Objective 2: Access IT Systems** (Unlocks after Objective 1) +3. 🔒 **Objective 3: Exploit ENTROPY's Backdoor** (Unlocks after server room access) +4. 🔒 **Objective 4: Recover Offline Backup Keys** (Unlocks after database flag) +5. 🔒 **Objective 5: Make Critical Decisions** (Unlocks after Objectives 3 & 4) + +### Task Visibility: +- Active tasks shown with ✅ checkmark when complete +- Locked tasks shown with 🔒 until unlocked +- Progressive unlocking prevents confusion +- Clear task titles guide player actions + +--- + +## Minimum Completion Requirements + +### 60% Mission Score (Minimal Path): +- ✅ Objective 1: Complete (3/3 tasks) +- ✅ Objective 2: Complete access_server_room (1/3 tasks minimum) +- ✅ Objective 3: Complete 2+ flags (2/4 tasks) +- ✅ Objective 4: Complete (3/3 tasks) +- ✅ Objective 5: Complete (2/2 tasks) + +### 100% Mission Score (Perfect Path): +- ✅ All 5 objectives complete (15/15 tasks) +- ✅ All 4 VM flags submitted +- ✅ All 3 LORE fragments collected (optional) +- ✅ Marcus protected (optional moral choice) +- ✅ Both moral decisions made with informed choices + +--- + +## Conclusion + +**Verification Result: PASS ✅** + +Mission 2 "Ransomed Trust" has a **clear and constant** set of objectives: + +- **5 well-defined objectives** with descriptive titles and purposes +- **15 specific tasks** with explicit completion criteria +- **Consistent across all files** (scenario.json.erb, SOLUTION_GUIDE.md, Ink scripts) +- **Progressive unlock structure** ensures linear story flow +- **Multiple solution paths** documented for flexibility +- **Clear player guidance** through task titles and types +- **No ambiguity** in completion requirements + +The objectives are suitable for: +- Player guidance during gameplay +- Completion tracking for mission scoring +- Educational assessment of learning outcomes +- Narrative pacing and tension building + +**Document Version:** 1.0 +**Last Verified:** Mission 2 Development (Session: claude/prepare-mission-2-dev-KRHGY) +**Status:** All objectives verified clear and constant