Conversation
Document the package map, KMS backend registry and build tags (cgo and platform requirements per backend), TPM simulator testing, generated files, test/lint commands, and error and testing conventions for agents working in this repository. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JuSZFSx1cTEnqY55oquacV
AGENTS.md is the vendor-neutral file read by other coding agents. Claude Code does not read it natively, so CLAUDE.md becomes a one-line @AGENTS.md import that loads the same content. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JuSZFSx1cTEnqY55oquacV
Per review: keep the repo root to AGENTS.md and put the Claude Code import stub under .claude/, importing @../AGENTS.md. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JuSZFSx1cTEnqY55oquacV
maraino
left a comment
There was a problem hiding this comment.
We will need some changes after the tools PR
| library only, no binaries: X.509 and SSH certificate templating, key generation and | ||
| PEM/JWK handling, a pluggable KMS abstraction (software, AWS, GCP, Azure, PKCS #11, | ||
| YubiKey, ssh-agent, TPM, macOS Keychain, Windows CAPI), and TPM 2.0 attestation. | ||
| [`step`](https://github.com/smallstep/cli) and [`step-ca`](https://github.com/smallstep/certificates) |
There was a problem hiding this comment.
Added step-kms-plugin alongside step and step-ca in the consumers sentence.
| exported APIs backward compatible. `go.mod` requires Go 1.26; CI tests `stable` and | ||
| `oldstable`. |
There was a problem hiding this comment.
I suppose Claude knows, but should we clarify what stable and oldstable means?
There was a problem hiding this comment.
Clarified: stable is the newest Go release, oldstable the previous minor, and code must build on both.
| ## Commands | ||
|
|
||
| ```bash | ||
| make bootstrap # install golangci-lint, govulncheck, gotestsum into $(go env GOPATH)/bin |
There was a problem hiding this comment.
Updated for #1131: the bootstrap line is gone (the target is now a no-op) and every command is described as running through go tool from the go.mod tool block.
| CGO_ENABLED=1 go test -tags tpmsimulator -run TestTPM_CreateAK ./tpm/ | ||
| ``` | ||
|
|
||
| `make test` and `make race` need `gotestsum` on `PATH`; `make lint` needs network |
There was a problem hiding this comment.
We don't need gotestsum with go tools, we will need network.
There was a problem hiding this comment.
Reworded: nothing to install, but the first go tool invocation downloads the tool modules over the network, and make lint always needs network for .golangci.yml.
| `internal/templates` FuncMap (sprig plus `toTime`, `formatTime`, etc.); the `fail` | ||
| function surfaces user-visible template errors. The `Default*Template` constants are | ||
| consumed verbatim by `step-ca` provisioners, so changing them is a behavior change. | ||
| - **Imports**: `goimports -local go.step.sm/crypto`; lint rules come from the shared |
There was a problem hiding this comment.
Now reads make fmt (go tool goimports -local go.step.sm/crypto).
Tools now come from go.mod tool directives, so drop the bootstrap step and route commands through `go tool`; name step-kms-plugin as a consumer; define stable/oldstable. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RKCkbjJakXqQXEyeCQcVjf
Name of feature:
Adds a
AGENTS.mdwith agent guidance for this repository. It covers the package map, thekmsbackend registry and per-backend cgo/platform build tags, TPM simulator testing, generated files, the Makefile test/lint targets, and the error-wrapping and testing conventions in use.Supporting links/other PRs/issues:
.claude/CLAUDE.mdis a one-line@../AGENTS.mdimport so Claude Code loads the same file.Tracks EFF-787.
🤖 Generated with Claude Code
https://claude.ai/code/session_01JuSZFSx1cTEnqY55oquacV