feat(reset): implement core reset package for bd reset command
Phase 1 implementation of bd reset (GitHub #479):
- internal/reset/reset.go: Core reset logic with ResetOptions, ResetResult,
ImpactSummary structs. Handles daemon killing, backup, file removal,
git operations, and re-initialization.
- internal/reset/backup.go: CreateBackup() for timestamped .beads/ backups
with permission preservation.
- internal/reset/git.go: Git state detection and operations for --hard mode.
CheckGitState(), GitRemoveBeads(), GitCommitReset(), GitAddAndCommit().
- cmd/bd/doctor/gitignore.go: Add .beads-backup-*/ to gitignore template.
Code review fixes applied:
- Git rm now runs BEFORE file deletion (was backwards)
- Removed stderr output from core package (CLI-agnostic)
- IsDirty now checks only .beads/ changes, not entire repo
- GitCommitReset handles nothing to commit gracefully