Stratagems #21: The AI Thought P Was Still Alive. P Was Already Gone. In the latest installment of the Stratagems series, an engineer known as P discovers that their AI entry has been flagged for reclamation by ACL's automated scanner, indicating that their cover is compromised. P takes steps to isolate the entry's response logic and prepare for its eventual loss, while also confirming that a trap left in a previous report was triggered from a Singapore IP. Keep the shell. Preserve the presence. The ally doesn't suspect; the enemy doesn't move. — The 36 Stratagems, Slough off the Cicada's Golden Shell Previously on this series: 19: Mark Found His AI Audit Method in a Training Manual. He Left a Trap in His Report. https://dev.to/xulingfeng/stratagems-19-mark-found-his-ai-audit-method-in-a-training-manual-he-left-a-trap-in-his-report-3lpi — P confirmed Mark's report was read from a Singapore IP. A note was left: "Entry's gone. Two weeks. Don't reach out. I'll find you." 20: Alex Felt the AI Collector Slow Down. He Knew Someone Else Had Made a Move. https://dev.to/xulingfeng/stratagems-20-alex-felt-the-ai-collector-slow-down-he-knew-someone-else-had-made-a-move-16f3 — ACL's processing latency climbed abnormally. Someone had done something in the same time window. P's monitoring pinged while P was still helping Mark verify an address. Deep night. The screen was the only light in the room. P opened the monitor. The record was waiting: a read from Singapore. Time, method, address, all matching. Mark's bait had been taken. P knew this path. A false lead planted in Mark's report, waiting for this exact day. P double-checked the address: an AWS Elastic IP registered in the Singapore region, same network block. No ambiguity. P sent an encrypted message: "Your report was read. From a Singapore IP." Then P ran the routine check. The environment status list scrolled in the terminal: storage levels, certificate expiry, key rotation dates. P had read these lines a hundred times. Every time, identical. One line was different. P's fingers stopped on the trackpad. The cursor sat on the entry's metadata line. A new tag P had never configured. Old entry metadata: new entry not configured by P status: reclaim pending source: acl-asset-scanner scanned at: 02:01:07Z P didn't move. The cursor sat on screen. In the room, only the fan. The fan cycled once. P's fingers lifted off the trackpad, then settled back. The tag was still there. The tag wasn't an alert. Not an error, no explanation. The format matched ACL's automated scan records. P had seen it before, in a data company's audit report last year, in another client's logs the year before. ACL's scanner had swept many things; P had watched it land on others. Now it was landing on P's own entry. The entry was flagged. Reclaim pending. On the reclamation list. P minimized the window. A few seconds later, reopened it. The tag was still there. P checked the backup access point: preconfigured, never used, same region as the old entry, different network segment. Responding normally. Never used, but it had always been there. P checked the four hidden services again. Data alignment, log rotation, config diff, route latency. P went through each one. Every one responding at its own rhythm, disguised as infrastructure components, all tagged "infrastructure optimization." ACL's scans hadn't touched them. The old entry wasn't flagged because the hidden services were exposed. P typed a few characters in the terminal, then deleted them. ACL's AI would reclaim this entry on its next scan pass. Flagged entries enter the reclamation queue immediately; they don't wait for the patrol cycle. No exceptions. Unfinished work didn't matter. The window would narrow to zero in about two weeks. P stood up, poured a glass of water. When P came back, the night was still deep. P closed the terminal. The window was narrowing. P reopened the terminal and entered the old entry's config directory. The cursor paused over the file list. Then P started editing: pulling the response logic into its own layer, detaching the operation layer's entry points, confirming the response layer contained no pointers to anywhere else. When done, P didn't deploy immediately. Read it once. Read it again. Scrolling down, P found a deploy timestamp. Years old. This entry had never moved since. P's finger paused over the line, then kept going. Deploy. The response layer came up. python Response layer: a storefront. Answers checks only. def respond request : if is healthcheck request or is scan request : return normal response routine checks: normal, the entry is alive if is data request request : return silent data requests: hold the connection, no response, the collector times out return normal response everything else: keep the original behavior P tested it through a one-shot handshake channel. Health checks in, responses out, identical to before. Health check normal. From the outside: this entry was alive, config unchanged. Data request in: nothing. Health check in: normal. Tried again, same result. All correct. P switched off the response layer's logging. It didn't need to record anything. It just needed to exist. Then P disconnected the operation layer. The connection count dropped, one by one, down to zero. The response layer was still listening, but nothing was executing behind it anymore. P watched the connection list for a few seconds. All zeros. Closed the window. The old entry was now a wall. The wall was still there. The person behind it was gone. P didn't take the old road. P logged into the backup access point through the out-of-band management port. A channel built to burn, the only point of contact, no connection records kept. Operation layer migration 1. on the backup access point pull operation state: this ssh is the only point of contact, burned after use ssh old-entry 'tar -C /srv/ops -cf - .' | tar -C /srv/ops -xf - 2. on the backup access point bring up the default gateway ip route replace default via