nbd list now hides done tickets unless the caller explicitly provides a
status filter. Pass --filter status=* to see all tickets or
--filter status=done to see only completed ones.
- Add matches_status and matches_except_status to TicketFilter
- Update cmd_list to apply implicit done-exclusion when no status filter given
- Update List command help text
- Add unit tests for new filter methods
- Add integration tests for the new default behaviour
- Update README usage section
- `nbd init` creates `.nbd/tickets/` in cwd (idempotent, no find_nbd_root)
- `nbd ready` lists actionable tickets: not done with all deps completed
- Both commands support `--json` for machine-readable output
- 6 new integration tests covering init and ready behaviour
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds `nbd migrate` to bring ticket files on disk into conformance with
the current serde schema. Re-serialises every *.json file through the
current Ticket model — removing stale fields (e.g. old \"id\" key),
adding new fields with their defaults, and normalising formatting.
- store: MigrateReport struct and migrate_tickets() function
- display: format/print_migrate_report and _json variants
- main: Migrate command with --dry-run flag and cmd_migrate handler
- 6 unit tests (rewrites old format, already-current, dry-run, invalid JSON, empty store, no tickets dir)
- 4 integration tests (rewrite, dry-run, parse error tolerance, --json output)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Write the three required documentation files for the nbd crate:
- README.md: usage guide, field reference, dev workflow, dual-license
footer, and Claude Code disclaimer
- docs/PLANNING.md: development phase log and post-MVP roadmap
- docs/ARCHITECTURE.md: module responsibilities, data flow diagram,
storage layout, and testing strategy
Run and verify cargo fmt, check, clippy, and test (34 tests pass).
Mark all Phase 6 items as complete in PLAN.md.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>