From c85a36ea3978615aa181777ca4decbcab796a003 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 27 Dec 2025 17:58:45 +0000 Subject: [PATCH] Fix objectives: add order field, flatten structure, add task types --- .../scenario.json.erb | 250 ++++++++---------- 1 file changed, 110 insertions(+), 140 deletions(-) diff --git a/scenarios/m03_ghost_in_the_machine/scenario.json.erb b/scenarios/m03_ghost_in_the_machine/scenario.json.erb index 0332a91..7fd1aff 100644 --- a/scenarios/m03_ghost_in_the_machine/scenario.json.erb +++ b/scenarios/m03_ghost_in_the_machine/scenario.json.erb @@ -47,91 +47,78 @@ operational_log_content = "TRANSACTION LOG - Q3 2024\n\n[2024-09-15 14:32:11] Pr "title": "Zero Day Intelligence", "description": "Gather evidence of Zero Day Syndicate's exploit marketplace operations", "status": "active", - "optional": false, - "aims": [ + "order": 0, + "tasks": [ { - "aimId": "establish_cover", - "title": "Establish Undercover Access", - "description": "Infiltrate WhiteHat Security and clone Victoria Sterling's keycard", - "status": "active", - "tasks": [ - { - "taskId": "meet_victoria", - "title": "Meet Victoria Sterling", - "description": "Meet Victoria Sterling at WhiteHat Security", - "status": "active" - }, - { - "taskId": "clone_rfid_card", - "title": "Clone RFID Keycard", - "description": "Clone Victoria Sterling's executive keycard", - "status": "locked" - } - ] + "taskId": "meet_victoria", + "title": "Meet Victoria Sterling", + "description": "Meet Victoria Sterling at WhiteHat Security", + "type": "npc_conversation", + "targetNPC": "victoria_sterling", + "status": "active" }, { - "aimId": "network_recon", - "title": "Network Reconnaissance", - "description": "Scan Zero Day's training network to identify services and gather intelligence", - "status": "locked", - "tasks": [ - { - "taskId": "scan_network", - "title": "Scan Training Network", - "description": "Use nmap to scan the training network (192.168.100.0/24)", - "status": "locked" - }, - { - "taskId": "ftp_banner", - "title": "Gather FTP Intelligence", - "description": "Connect to FTP service and extract banner information", - "status": "locked" - }, - { - "taskId": "http_analysis", - "title": "Analyze HTTP Service", - "description": "Analyze HTTP service and decode Base64 pricing data", - "status": "locked" - }, - { - "taskId": "distcc_exploit", - "title": "Exploit distcc Service", - "description": "Exploit legacy distcc service to access operational logs", - "status": "locked" - } - ] + "taskId": "clone_rfid_card", + "title": "Clone RFID Keycard", + "description": "Clone Victoria Sterling's executive keycard", + "type": "custom", + "status": "locked" }, { - "aimId": "gather_evidence", - "title": "Physical Evidence Collection", - "description": "Collect physical evidence from WhiteHat Security offices", - "status": "locked", - "tasks": [ - { - "taskId": "decode_whiteboard", - "title": "Decode Whiteboard Message", - "description": "Decode the ROT13 message on the server room whiteboard", - "status": "locked" - }, - { - "taskId": "access_victoria_computer", - "title": "Access Victoria's Computer", - "description": "Access Victoria Sterling's executive office computer", - "status": "locked" - }, - { - "taskId": "decode_client_roster", - "title": "Decode Client Roster", - "description": "Decode the hex-encoded client roster from Victoria's computer", - "status": "locked" - }, - { - "taskId": "find_operational_logs", - "title": "Find Operational Logs", - "description": "Correlate VM operational logs with physical evidence", - "status": "locked" - } - ] + "taskId": "scan_network", + "title": "Scan Training Network", + "description": "Use nmap to scan the training network (192.168.100.0/24)", + "type": "custom", + "status": "locked" + }, + { + "taskId": "ftp_banner", + "title": "Gather FTP Intelligence", + "description": "Connect to FTP service and extract banner information", + "type": "custom", + "status": "locked" + }, + { + "taskId": "http_analysis", + "title": "Analyze HTTP Service", + "description": "Analyze HTTP service and decode Base64 pricing data", + "type": "custom", + "status": "locked" + }, + { + "taskId": "distcc_exploit", + "title": "Exploit distcc Service", + "description": "Exploit legacy distcc service to access operational logs", + "type": "custom", + "status": "locked" + }, + { + "taskId": "decode_whiteboard", + "title": "Decode Whiteboard Message", + "description": "Decode the ROT13 message on the server room whiteboard", + "type": "custom", + "status": "locked" + }, + { + "taskId": "access_victoria_computer", + "title": "Access Victoria's Computer", + "description": "Access Victoria Sterling's executive office computer", + "type": "custom", + "status": "locked" + }, + { + "taskId": "decode_client_roster", + "title": "Decode Client Roster", + "description": "Decode the hex-encoded client roster from Victoria's computer", + "type": "custom", + "status": "locked" + }, + { + "taskId": "find_operational_logs", + "title": "Find Operational Logs", + "description": "Correlate VM operational logs with physical evidence", + "type": "custom", + "status": "locked" } ] }, @@ -140,33 +127,29 @@ operational_log_content = "TRANSACTION LOG - Q3 2024\n\n[2024-09-15 14:32:11] Pr "title": "LORE Collection", "description": "Discover hidden LORE fragments about ENTROPY and The Architect", "status": "active", - "optional": true, - "aims": [ + "order": 1, + "tasks": [ { - "aimId": "find_all_lore", - "title": "Find All LORE Fragments", - "description": "Locate 3 hidden LORE fragments", - "status": "active", - "tasks": [ - { - "taskId": "lore_fragment_1", - "title": "Zero Day Origins", - "description": "Find the document detailing Zero Day Syndicate's founding", - "status": "active" - }, - { - "taskId": "lore_fragment_2", - "title": "Exploit Catalog", - "description": "Open Victoria's safe to find the exploit catalog", - "status": "active" - }, - { - "taskId": "lore_fragment_3", - "title": "The Architect's Directive", - "description": "Decode the double-encoded USB drive message", - "status": "active" - } - ] + "taskId": "lore_fragment_1", + "title": "Zero Day Origins", + "description": "Find the document detailing Zero Day Syndicate's founding", + "type": "custom", + "status": "active" + }, + { + "taskId": "lore_fragment_2", + "title": "Exploit Catalog", + "description": "Open Victoria's safe to find the exploit catalog", + "type": "unlock_object", + "targetObject": "wall_safe_server", + "status": "active" + }, + { + "taskId": "lore_fragment_3", + "title": "The Architect's Directive", + "description": "Decode the double-encoded USB drive message", + "type": "custom", + "status": "active" } ] }, @@ -175,21 +158,14 @@ operational_log_content = "TRANSACTION LOG - Q3 2024\n\n[2024-09-15 14:32:11] Pr "title": "Perfect Stealth", "description": "Complete the mission without being detected by the guard", "status": "active", - "optional": true, - "aims": [ + "order": 2, + "tasks": [ { - "aimId": "stealth_mastery", - "title": "Maintain Stealth", - "description": "Avoid detection by the night security guard", - "status": "active", - "tasks": [ - { - "taskId": "zero_detection", - "title": "Complete Mission Undetected", - "description": "Complete all objectives without triggering guard detection", - "status": "active" - } - ] + "taskId": "zero_detection", + "title": "Complete Mission Undetected", + "description": "Complete all objectives without triggering guard detection", + "type": "custom", + "status": "active" } ] }, @@ -198,27 +174,21 @@ operational_log_content = "TRANSACTION LOG - Q3 2024\n\n[2024-09-15 14:32:11] Pr "title": "Moral Engagement", "description": "Engage with the moral complexity of the mission", "status": "locked", - "optional": true, - "aims": [ + "order": 3, + "tasks": [ { - "aimId": "engage_moral_choices", - "title": "Make Key Moral Decisions", - "description": "Confront the moral choices in the mission", - "status": "locked", - "tasks": [ - { - "taskId": "james_choice_made", - "title": "Decide James Park's Fate", - "description": "Decide whether to protect James Park from collateral damage", - "status": "locked" - }, - { - "taskId": "victoria_choice_made", - "title": "Decide Victoria's Fate", - "description": "Confront Victoria Sterling and decide her fate", - "status": "locked" - } - ] + "taskId": "james_choice_made", + "title": "Decide James Park's Fate", + "description": "Decide whether to protect James Park from collateral damage", + "type": "custom", + "status": "locked" + }, + { + "taskId": "victoria_choice_made", + "title": "Decide Victoria's Fate", + "description": "Confront Victoria Sterling and decide her fate", + "type": "custom", + "status": "locked" } ] }