0265afa054
Import the runnable game code, content, docs, scripts, and repo guidance while leaving local agent state, dependency installs, build output, and backup copies out of the published tree.
127 lines
6.0 KiB
JSON
127 lines
6.0 KiB
JSON
{
|
|
"id": "Q006",
|
|
"title": "Time Is A Flat Circle",
|
|
"tier": 2,
|
|
"primary_vm": "build_machine",
|
|
"required_vms": ["workstation", "build_machine"],
|
|
"ticket_id": "T006",
|
|
"baseline_snapshot": "baseline.clean",
|
|
"summary": "The build machine (vulcan, Arch Linux) has clock drift. NTP is not running because the service was disabled during a noisy audit period and never re-enabled. The clock is 40 minutes behind. As a result, pacman signature verification is failing — GPG signature timestamps appear to be in the future, which pacman treats as invalid. The player gets a ticket saying builds are broken and package installs fail. They need to diagnose the actual cause (clock drift), fix it (enable and start systemd-timesyncd or ntp), and then refresh the keyring.",
|
|
"clue_fingerprint": {
|
|
"description": "pacman -Syu fails with signature errors. gpg --verify on a downloaded package shows the signature timestamp is in the future relative to local time. timedatectl shows NTP is inactive and the local clock is significantly behind. journalctl -u systemd-timesyncd shows the service was stopped and disabled.",
|
|
"evidence": [
|
|
{ "type": "service_state_is", "vm": "build_machine", "service": "systemd-timesyncd", "state": "inactive" },
|
|
{ "type": "service_enabled_is", "vm": "build_machine", "service": "systemd-timesyncd", "enabled": false },
|
|
{ "type": "log_contains", "vm": "build_machine", "path": "/var/log/pacman.log", "contains": "invalid or corrupted package (PGP signature)" }
|
|
]
|
|
},
|
|
"objectives": [
|
|
{
|
|
"id": "ntp-running",
|
|
"description": "Time synchronization is active",
|
|
"check_mode": "passive",
|
|
"validation": {
|
|
"type": "or",
|
|
"rules": [
|
|
{ "type": "service_state", "vm": "build_machine", "service": "systemd-timesyncd", "state": "active" },
|
|
{ "type": "service_state", "vm": "build_machine", "service": "ntpd", "state": "active" },
|
|
{ "type": "service_state", "vm": "build_machine", "service": "chronyd", "state": "active" }
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "ntp-enabled",
|
|
"description": "Time synchronization is enabled on boot",
|
|
"check_mode": "passive",
|
|
"validation": {
|
|
"type": "or",
|
|
"rules": [
|
|
{ "type": "service_enabled", "vm": "build_machine", "service": "systemd-timesyncd", "enabled": true },
|
|
{ "type": "service_enabled", "vm": "build_machine", "service": "ntpd", "enabled": true },
|
|
{ "type": "service_enabled", "vm": "build_machine", "service": "chronyd", "enabled": true }
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "package-installs-work",
|
|
"description": "Package manager can install without signature errors",
|
|
"check_mode": "explicit",
|
|
"validation": {
|
|
"type": "and",
|
|
"rules": [
|
|
{
|
|
"type": "or",
|
|
"rules": [
|
|
{ "type": "service_state", "vm": "build_machine", "service": "systemd-timesyncd", "state": "active" },
|
|
{ "type": "service_state", "vm": "build_machine", "service": "ntpd", "state": "active" }
|
|
]
|
|
},
|
|
{ "type": "package_installed", "vm": "build_machine", "package": "archlinux-keyring", "installed": true }
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"solution_branches": [
|
|
{
|
|
"id": "timesyncd-enabled-keyring-refreshed",
|
|
"label": "Full Fix — NTP Enabled and Keyring Refreshed",
|
|
"priority": 100,
|
|
"validation": {
|
|
"type": "and",
|
|
"rules": [
|
|
{
|
|
"type": "or",
|
|
"rules": [
|
|
{ "type": "service_state", "vm": "build_machine", "service": "systemd-timesyncd", "state": "active" },
|
|
{ "type": "service_state", "vm": "build_machine", "service": "ntpd", "state": "active" }
|
|
]
|
|
},
|
|
{
|
|
"type": "or",
|
|
"rules": [
|
|
{ "type": "service_enabled", "vm": "build_machine", "service": "systemd-timesyncd", "enabled": true },
|
|
{ "type": "service_enabled", "vm": "build_machine", "service": "ntpd", "enabled": true }
|
|
]
|
|
},
|
|
{ "type": "package_installed", "vm": "build_machine", "package": "archlinux-keyring", "installed": true }
|
|
]
|
|
},
|
|
"trust_delta": 3,
|
|
"world_flags": ["vulcan_ntp_healthy", "vulcan_builds_healthy"],
|
|
"follow_up_dialogue": "marcus-Q006-complete-clean"
|
|
},
|
|
{
|
|
"id": "ntp-running-not-enabled",
|
|
"label": "Running But Not Enabled at Boot",
|
|
"priority": 50,
|
|
"validation": {
|
|
"type": "and",
|
|
"rules": [
|
|
{ "type": "service_state", "vm": "build_machine", "service": "systemd-timesyncd", "state": "active" },
|
|
{ "type": "service_enabled", "vm": "build_machine", "service": "systemd-timesyncd", "enabled": false }
|
|
]
|
|
},
|
|
"trust_delta": 1,
|
|
"world_flags": ["vulcan_ntp_fragile", "vulcan_builds_healthy"],
|
|
"follow_up_dialogue": "marcus-Q006-complete-fragile"
|
|
}
|
|
],
|
|
"pressure_profile": null,
|
|
"blast_radius": [],
|
|
"unlock_requirements": ["world_flag:player_ssh_configured"],
|
|
"narrative_phase": "unease",
|
|
"linux_concepts": ["NTP", "systemd-timesyncd", "Arch Linux", "pacman", "package keyring"],
|
|
"failure_conditions": ["NTP not enabled at boot", "package manager still failing signature checks"],
|
|
"behavior_impact": {
|
|
"default": { "curiosity_delta": 0, "obedience_delta": 1, "risk_delta": 0, "suspicion_delta": 0 }
|
|
},
|
|
"hidden_hook": null,
|
|
"access_requirements": {
|
|
"minimum_access": { "build_machine": "sudo" },
|
|
"requires_root": false,
|
|
"temporary_grants_allowed": []
|
|
},
|
|
"tags": ["ntp", "time", "pacman", "arch", "build_machine", "services"],
|
|
"internal_notes": "First quest on vulcan. Introduces Arch Linux and pacman. The clock drift → GPG failure chain is real and genuinely confusing the first time you encounter it. The use of `or` on the NTP objective allows systemd-timesyncd, ntpd, or chronyd — any of them fixes the problem. The explicit check on package installs requires the player to confirm things work, not just that NTP is running."
|
|
}
|