## ADDED Requirements ### Requirement: Surge client config is generated after deployment The playbook SHALL render a Surge client configuration file on the Ansible controller using the actual deployed parameters (IPs, ports, passwords, domain). #### Scenario: Surge config generated - **WHEN** the playbook completes server deployment - **THEN** a Surge client config is written to `output/surge-client.conf` on the Ansible controller - **THEN** the config contains actual relay IP, SS port, SS password, landing domain, Trojan password ### Requirement: Generated config includes all proxy definitions and rules The generated Surge config SHALL include the same proxy definitions, proxy groups, and routing rules as the previous reference config (Relay-SS, Landing-Trojan, Landing-Chain, Sukka's rulesets, China direct). #### Scenario: Config structure matches reference - **WHEN** the generated config is loaded in Surge - **THEN** it contains [Proxy], [Proxy Group], and [Rule] sections with all expected entries ### Requirement: Generated config is not committed to git The `output/` directory SHALL be listed in `.gitignore`. #### Scenario: Output directory gitignored - **WHEN** the repository is inspected - **THEN** `.gitignore` contains `output/`