compose/AGENTS.md
Guillaume Lours 38d12f505f
Some checks are pending
ci / validate (lint) (push) Waiting to run
ci / validate (validate-docs) (push) Waiting to run
ci / validate (validate-go-mod) (push) Waiting to run
ci / validate (validate-headers) (push) Waiting to run
ci / binary (push) Waiting to run
ci / binary-finalize (push) Blocked by required conditions
ci / bin-image-test (push) Waiting to run
ci / test (push) Waiting to run
ci / e2e (plugin, oldstable) (push) Waiting to run
ci / e2e (standalone, oldstable) (push) Waiting to run
ci / e2e (plugin, stable) (push) Waiting to run
ci / e2e (standalone, stable) (push) Waiting to run
ci / coverage (push) Blocked by required conditions
ci / release (push) Blocked by required conditions
merge / bin-image-prepare (push) Waiting to run
merge / bin-image (push) Blocked by required conditions
merge / module-image (push) Waiting to run
Scorecards supply-chain security / Scorecards analysis (push) Waiting to run
zizmor / zizmor (push) Waiting to run
docs: require dated AI_AGENT_DISCLOSURE.md, drop committed copy
AI_AGENT_DISCLOSURE.md was merged into the repository by accident as
part of a reconcile change (44ac2c94e). With the file permanently
present, the AGENTS.md instruction to "add" it became a no-op and
AI-prepared pull requests no longer carried any disclosure signal.

Remove the committed copy and change the instruction to add the file
with the current date, or refresh the date when the file is already
present, so every AI-prepared change includes the disclosure in its
diff.

Signed-off-by: Guillaume Lours <glours@users.noreply.github.com>
2026-07-28 10:18:38 +02:00

2.1 KiB

Project: Docker Compose

Build & Test

  • Build: make build
  • Test all: make test
  • Test unit: go test ./pkg/...
  • Test single: go test ./pkg/compose/ -run TestFunctionName
  • E2E tests: go test -tags e2e ./pkg/e2e/ -run TestName

Lint

  • Linter: golangci-lint v2 (config in .golangci.yml)
  • Run: golangci-lint run --build-tags "e2e" ./...
  • After modifying any Go code, ALWAYS run the linter and fix all reported issues before considering the task complete.
  • Lint is also run via Docker: docker buildx bake lint (uses version pinned in Dockerfile)

Code Style

  • Formatting is enforced by golangci-lint (gofumpt + gci)
  • Import order: stdlib, third-party, local module (enforced by gci)
  • Max line length: 200 chars
  • Max cyclomatic complexity: 16
  • No io/ioutil, github.com/pkg/errors, gopkg.in/yaml.v2, golang.org/x/exp/maps, golang.org/x/exp/slices
  • Use github.com/containerd/errdefs instead of github.com/docker/docker/errdefs
  • In tests: use t.Context() instead of context.Background() or context.TODO()
  • Prefer fmt.Fprintf over WriteString(fmt.Sprintf(...))

Git

  • All commits MUST be signed off (DCO). Always pass --signoff (-s) to git commit and git commit --amend.

Issue and PR Guidelines

  • Never create an issue or pull request without the user's explicit instruction.

  • If a user asks you to create a pull request on their behalf, add a file named AI_AGENT_DISCLOSURE.md to the change containing the text below followed by the current date (YYYY-MM-DD). If the file is already present in the repository, update its date to the current date so the disclosure is always part of the change:

    "This contribution was prepared by an AI agent acting on a human's behalf. The human submitter may not have independently reviewed or tested the change."

  • If a user asks you to create an issue on their behalf, prepend the following line to the issue body:

    "This issue was filed by an AI agent on a human's behalf. The human submitter may not have independently verified the report."