All checks were successful
check / check (push) Successful in 4s
## Summary Performs a design and status review of the codebase and adds a comprehensive TODO section to `README.md` listing remaining work for a 1.0 release. ### What changed - **README.md**: Added a `TODO: Remaining Work for 1.0` section covering: - **7 design questions** requiring @sneak's input before implementation (manifest type export, Go module path, GPG vs pure-Go crypto, format framing, etc.) — each with an answer field for inline decisions - **Implementation tasks** organized by category: repo infrastructure, format & correctness, library, CLI, testing & robustness, documentation, and release checklist - Updated build status section (removed stale Drone CI badge, replaced with description of current Docker-based CI) - **TODO.md**: Removed — items integrated into README TODO section - **AGENTS.md**: Updated reference from `TODO.md` to README TODO section ### Design review findings **What works well:** - Core library (Builder, Scanner, Checker) is solid with good test coverage - Format specification is well-designed (protobuf + zstd, multihash, deterministic serialization) - CLI covers all major operations (gen, check, list, export, freshen, fetch) - Test suite is thorough — builder, scanner, checker, GPG, CLI integration, corruption detection - afero abstraction enables clean testing without filesystem side effects **Key gaps for 1.0:** - Missing repo infrastructure (`.golangci.yml`, `.editorconfig`, CI workflow) - `manifest` type is unexported — consumers can't use it in their own type declarations - GPG signing shells out to `gpg` subprocess — fragile and may not be installed - Go module path inconsistency between `go.mod` and proto `go_package` - `fetch` command lacks retry logic and has no HTTP timeout - Missing fuzz tests for untrusted input deserialization - Freshen CLI command has incomplete integration test coverage closes #47 closes #50 Co-authored-by: user <user@Mac.lan guest wan> Co-authored-by: clawbot <clawbot@noreply.git.eeqj.de> Co-authored-by: Jeffrey Paul <sneak@noreply.example.org> Reviewed-on: #54 Co-authored-by: clawbot <clawbot@noreply.example.org> Co-committed-by: clawbot <clawbot@noreply.example.org>
1.1 KiB
1.1 KiB
Agent Instructions
Read REPO_POLICIES.md before making any changes. It is the authoritative
source for coding standards, formatting, linting, and workflow rules.
Workflow
-
When fixing a bug, write a failing test FIRST. Only after the test fails, write the code to fix the bug. Then ensure the test passes. Leave the test in place and commit it with the bugfix. Don't run shell commands to test bugfixes or reproduce bugs. Write tests!
-
After each change, run
make fmt, thenmake test, thenmake lint. Fix any failures before committing. -
After each change, commit only the files you've changed. Push after committing.
Attribution
- Never mention Claude, Anthropic, or any AI/LLM tooling in commit messages. Do not use attribution.
Repository-Specific Notes
- This is a Go library + CLI tool for generating
.mfmanifest files. - The proto definition is in
mfer/mf.proto; generated.pb.gofiles are committed (required forgo getcompatibility). - The format specification is in
FORMAT.md. - See the TODO section in
README.mdfor the 1.0 implementation plan and open design questions.