Commit Graph

2 Commits

Author SHA1 Message Date
teernisse
479c250a92 chore: add project tooling with Makefile, golangci-lint config, and CLAUDE.md
Establish the quality infrastructure for the cburn project:

- Makefile: standardized targets for build, install, lint, test, test-race,
  bench, and fuzz. Uses explicit Go path (/usr/local/go/bin/go) for
  reproducibility. Fuzz defaults to 30s with FUZZ_TIME override.

- .golangci.yml (v2 format): enables gosec (security), revive (style),
  gocritic (bugs/perf), errcheck, nilerr, perfsprint, prealloc, and
  standard static analysis. Disables noisy rules (exported doc requirement,
  ifElseChain, deferred .Close() gosec G104). Includes gofmt + goimports
  formatters.

- CLAUDE.md: comprehensive project guide covering architecture overview,
  data flow diagram, package map, build/test commands, key design decisions
  (byte-level parsing, mtime-based caching, async TUI loading), and
  configuration reference.

- .gitignore: add pipeline.test to ignored test artifacts.
2026-02-20 16:06:53 -05:00
teernisse
340f688a1f chore: initialize project scaffolding and Go module
Set up the cburn project foundation:

- go.mod: Define module "cburn" targeting Go 1.24.2 with core
  dependencies — Cobra (CLI framework), Bubble Tea + Lipgloss
  (TUI), BurntSushi/toml (config), and modernc.org/sqlite (pure-Go
  SQLite for the metrics cache, no CGO required).

- go.sum: Lock all direct and transitive dependency versions for
  reproducible builds.

- main.go: Minimal entry point that delegates to cmd.Execute(),
  following the standard Cobra application pattern.

- .gitignore: Exclude the compiled binary, IDE directories (.idea/,
  .vscode/), and macOS .DS_Store files.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 13:00:45 -05:00