Skip to content

docs: CLAUDE.md — first-run pointer + lessons & gotchas - #5

Merged
ironystock merged 1 commit into
mainfrom
docs/claude-md-learnings
Apr 18, 2026
Merged

ironystock merged 1 commit into
mainfrom
docs/claude-md-learnings

Conversation

@ironystock

Copy link
Copy Markdown
Contributor

Summary

CLAUDE.md landed in the Phase D bootstrap with project conventions and file pointers, but no durable record of the context we actually accumulated while shipping the repo. This PR fixes that.

What's added

  • Callout at the top routing any first-time agent to `docs/agent-briefing.md` before anything else. CLAUDE.md is day-to-day; briefing is one-time orientation.
  • "Lessons & gotchas" section at the bottom with the hard-won context from the bootstrap sprint:
    • Go toolchain + golangci-lint version alignment (pin, don't use `latest` — this failed CI three times before we landed on `v2.11.4`)
    • `.golangci.yml` v2 format vs v1 (the legacy stanzas silently do nothing)
    • errcheck exclusions that make sense for CLI (`fmt.Fprint*`, `Close`) and ones that DON'T (`multipart.Writer` errors are real bugs — don't exclude them)
    • Pair-protocol `@auto` sentinel is load-bearing for backwards-compat with older CLIs still in production
    • Trust server-returned `connection.name` + `connection.config_target` — don't resurrect `detectClient()` cwd-sniffing
    • Two-repo discipline (no imports from private `ironystock/rememberize`)
    • Windows dev-host gopls workspace-awareness quirk (not a real error)
    • Release mechanics (tag push semantics, `RELEASE_PAT` secret, `brews:` vs deprecation-candidate `homebrew_casks:`)
    • Binary name is `rememberize` even though the repo is `rememberize-cli`
    • CGO_ENABLED=0 everywhere

Future agents touching the CLI shouldn't have to rediscover any of these by breaking things first.

Test plan

  • Markdown renders cleanly on GitHub
  • No broken internal links

🤖 Generated with Claude Code

CLAUDE.md landed in the Phase D bootstrap with conventions and pointers
but no durable record of the hard-won context from actually shipping
the repo. Adds:

- Callout at the top routing first-time agents to docs/agent-briefing.md.
- New "Lessons & gotchas" section covering:
  - golangci-lint/Go version alignment (pin, don't use latest)
  - .golangci.yml v2 config format vs v1
  - errcheck exclusions that make sense for CLI + ones that don't
    (multipart writer errors are REAL bugs)
  - Pair-protocol backwards-compat sentinel @auto — do not remove
  - Trust server-returned connection.name + config_target
  - Two-repo discipline (no imports from ironystock/rememberize)
  - Windows gopls workspace quirk (not a real error)
  - Release mechanics (tag push, RELEASE_PAT, brews vs homebrew_casks)
  - Binary name rememberize vs repo name rememberize-cli
  - CGO_ENABLED=0 everywhere

Future agents extending the CLI don't have to rediscover these.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@ironystock
ironystock merged commit 3d6218a into main Apr 18, 2026
6 checks passed
@ironystock
ironystock deleted the docs/claude-md-learnings branch April 28, 2026 16:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant