Hawk 0.1.0: Production Hardening Across the Ecosystem
We're building Hawk in the open. There is no public install or download yet — we're heads-down on features, tests, and hardening. This post is an engineering update on what changed in the monorepo since we clarified the product line.
Site polish (May 23)
We aligned Nest / Sync / Weave copy on the site, refreshed the changelog and blog palette, and added consistent metadata and navigation. Same story everywhere — no stale Free/Pro references.
Skills registry 0.1.0
hawk-community-skills plugin metadata synced to v0.1.0 so it matches the rest of hawk-eco. The registry still indexes 12,147 skills; recent work was validation tooling and version hygiene, not inflating the count.
Ecosystem version 0.1.0
We aligned hawk, eyrie, tok, yaad, sight, and inspect on a single 0.1.0 version line in each repo's VERSION file and CI. One number across the monorepo makes it easier to track what's in sync while we develop — not a consumer release tag yet.
Feature work (June)
Recent engineering focused on compression, safety, and multi-agent polish:
Hawk
- Cavecrew personas — three built-in agents with strict output formats: investigator (
path:line — symbol — note), builder (refuses 3+ file tasks), reviewer (severity emoji on every line). 21 built-in personas now (was 18). - `internal/safewrite` — atomic writes that refuse symlinks, path escape via
.., and useO_NOFOLLOW+ mode 0600 temp files before rename. - `internal/jsonc` — JSON-with-comments parser plus
ValidateClaudeSettingsfor Claude Codesettings.json. - Providers matrix — 34 AI coding tools with detection probes (PATH, dirs, VS Code / Cursor / JetBrains extensions).
- Session GainTracker — per-session compression stats in SQLite; pairs with tok's global tracker.
- REPL magic commands —
%reset,%undo,%tokens,%history,%copy,%save,%compact,%model,%clear.
Tok
- `tok.PromptCompress(text, intensity)` — Lite / Full / Ultra modes with auto-clarity for security-sensitive segments.
- `tok.NewTracker(ctx)` — persistent SQLite gain tracking (
~/.tok/tracker.db, 90-day retention). - `filter.SmartTruncate` — line-accounting
kept + dropped == totalinvariant withTruncateStats. - JSON extractors —
ExtractJSON,ExtractJSONArray,ExtractAllJSONfor messy LLM output. - TOML filter pipeline — full 8-stage TOML filter as a pluggable
Filter. - `CompressWithRetry` — validate-fix-retry loop with escalating intensity.
Eyrie
- `internal/shrink` — compresses tool descriptions before they hit the provider (dictionary + drop-list + 200-char cap), with auto-clarity for destructive keywords. Reports
BytesSavedandPercentOffper request.
Production hardening
We benchmarked our CI and lint setup against well-maintained Go repos in the space:
| Area | What changed |
|---|---|
| Lint | golangci-lint v2 — errcheck, staticcheck, gocritic, unused, bodyclose, noctx, and more |
| Correctness | 240+ unchecked error returns fixed; 13 dead symbols removed; real append bugs in MCP and repomap |
| Tests | auth coverage ~18% → ~71%; update ~22% → ~92% |
| CI | Race detector + coverage, govulncheck, gosec, linux/darwin/windows × amd64/arm64 matrix |
| Container | tini init, non-root user, tzdata in the hawk image |
| Hygiene | CONTRIBUTING.md, .editorconfig, PR and issue templates across repos |
A `ci-sweep.sh` script runs make ci across every hawk-eco repo in one pass.
What's next
We're still in build mode — features first, public install and release tooling later. Follow the changelog and GitHub for progress. When Hawk is ready to try, we'll say so explicitly.
Questions? Discord.