server-connectlisted
Install: claude install-skill makieali/claude-code-engineer
# Server Connect — Reachable, Then Written Down
Two jobs, in this order:
1. **Make the server reachable by name**, non-interactively, so no session ever stalls on a
prompt it cannot answer.
2. **Write down what is on it**, by looking rather than by asking, into `server-info/`.
The second is the part people skip, and it is the part that pays. A session that has to
rediscover which service runs on which port every time is a session spending its context on
archaeology.
---
## SAFETY RULES — read before running anything
- **Read-only until told otherwise.** Discovery does not restart services, edit configs, or
touch a database. Every command in Step 5 is safe to run on production.
- **`server-info/` is never committed.** Verify it is gitignored *before* writing into it.
- **Never write a discovered secret into the notes.** Record that
`DATABASE_URL` is set; never record its value. Record the path to the env file, not its
contents.
- **Irreversible actions are gated on a human**: service restarts on production, migrations,
firewall changes, package upgrades, anything touching data.
- Nothing here goes in a public repository. Real hostnames and usernames are the reason.
---
## STEP 1: GENERATE A KEY — no passphrase, and here is the honest tradeoff
```bash
KEY=~/.ssh/<project>-<env> # e.g. ~/.ssh/acme-dev — one key per server, never reused
ssh-keygen -t ed25519 -N "" -C "claude-code@<project>-<env>" -f "$KEY"
chmod 600 "$KEY"
```
`-N ""` means **no pass