aminet-mirrorlisted
Install: claude install-skill Tibsfox/gsd-skill-creator
# Aminet Mirror
## Purpose
Manages selective mirroring of Aminet packages to the local filesystem. Handles single-package fetching with ordered mirror fallback, SHA-256 integrity verification, persistent mirror state tracking with 7-state status enum, concurrent bulk downloads with rate limiting, and sync detection comparing local state against the INDEX.
## Capabilities
- Single-package fetch with ordered mirror fallback
- Directory hierarchy preservation matching Aminet structure
- Non-fatal .readme download (best-effort alongside archive)
- User-Agent header on all HTTP requests
- SHA-256 integrity verification via node:crypto
- Size verification with +/-1 KB tolerance for Aminet metadata rounding
- Combined integrity result (hash + size) in single check
- 7-state PackageStatus enum tracking full lifecycle
- Atomic write-then-rename for mirror state persistence
- Immutable updateEntry pattern for safe concurrent access
- Bulk download with async semaphore concurrency control
- Global rate limiting gate between requests
- Resume from interruption (skips already-mirrored packages)
- Serialized state writes via Promise chain mutex
- Sync detection comparing mirror state vs INDEX by sizeKb
- O(1) Map lookup for efficient change detection
- Only change-eligible statuses compared (mirrored+)
## Key Modules
| Module | Purpose |
|--------|---------|
| `src/aminet/package-fetcher.ts` | Single-package fetch with ordered mirror fallback and .readme |
| `src/aminet/mirror-state.