Two maintainability items surfaced by external review:
- Bus factor = 1 (90 commits, single author). Add CONTRIBUTING.md (build/test workflow, sshx_e2e tag explanation, acceptance-matrix rule from docs/roadmap.md, PR expectations), label a handful of
good first issues, and state a maintainer-succession intent in the README community section.
- Large files drifting —
internal/sshclient/client.go is 1113 lines mixing connection, auth, host-key, exec, and SFTP concerns; internal/app/config.go (812) and dryrun.go (792) are close behind. Split client.go along existing seams (connect/auth, hostkey, exec, sftp) with zero behavior change; existing tests must pass unchanged.
Acceptance
Two maintainability items surfaced by external review:
good first issues, and state a maintainer-succession intent in the README community section.internal/sshclient/client.gois 1113 lines mixing connection, auth, host-key, exec, and SFTP concerns;internal/app/config.go(812) anddryrun.go(792) are close behind. Split client.go along existing seams (connect/auth, hostkey, exec, sftp) with zero behavior change; existing tests must pass unchanged.Acceptance
go test ./internal/sshclientgreen, coverage not reduced