Each phase:
- Has a clear goal
- Produces working software
- Can be tested manually
- Builds intuition incrementally
You should not move to the next phase until the current one feels solid.
Prepare a sane foundation without writing “real logic” yet.
- Initialize Go module
- Add Cobra CLI scaffold
- Decide binary name (
koded) - Define directory structure
- Add
.gitignore - Add basic
koded versioncommand - Define config + state directories (
~/.koded/)
koded version
koded helpWorks cleanly.
koded knows what it is installing before doing anything.
- Define manifest schema (YAML or JSON)
- Implement manifest loader
- Validate OS / arch resolution
- Add error handling for unsupported platforms
- Add
koded inspect <pkg>command
koded inspect rustOutputs:
- Version
- Download URL
- Size (if available)
- Install target
- Incorrect platform fails loudly
- No downloading yet
Get a reliable single-file downloader working.
- HTTP download logic
- Progress display
- Save to cache directory
- Handle retries
- Handle network failure gracefully
- Add
koded download <pkg>
- Large file downloads completely
- Clean failure message on interruption
- File integrity preserved
Build the heart of koded.
- Split downloads using HTTP Range
- Concurrent chunk downloading
- Chunk file persistence
- Progress aggregation
- Chunk-level retry logic
- Downloads complete faster than Phase 2
- Chunks saved independently
- No data corruption
Make downloads pauseable and resumable.
- Design download state format
- Persist completed chunks
- Load state on restart
- Skip completed chunks
- Implement
koded pause - Implement
koded resume
- Interrupting the process does not lose progress
- Resume continues exactly where it stopped
- No duplicate downloads
Ensure correctness before install.
- SHA256 verification
- Chunk re-verification
- Assemble chunks into final artifact
- Cleanup corrupted chunks
- Fail safely on hash mismatch
- Corrupted downloads are detected
- Resume fixes corruption automatically
Make tools usable.
- Archive extraction (
zip,tar.gz) - Binary detection
- Copy to install directory
- Handle permissions
- Implement
koded install <pkg>
koded install rg
rg --versionWorks.
Turn it from a hack into a tool.
koded status- Better progress UI
- Friendly error messages
- Dry-run mode
- Cache cleanup command
- Clear messaging
- No confusion about state
Prove portability.
- Windows installer logic
- Path handling
- Permission handling
- Platform-specific edge cases
- Do not jump phases
- Do not optimize early
- Manual testing > benchmarks
- Log everything
- If resume works, you win