Skip to content

docs: add gauge-repo engineering best-practices audit - #119

Merged
juilichormole merged 1 commit into
mainfrom
docs/gauge-repo-audit
Sep 9, 2026
Merged

docs: add gauge-repo engineering best-practices audit#119
juilichormole merged 1 commit into
mainfrom
docs/gauge-repo-audit

Conversation

@juilichormole

Copy link
Copy Markdown
Contributor

Summary

Adds the gauge-repo engineering best-practices audit for caterpillar at docs/engineering-best-practices-audit.md (data-platform catalog batch).

  • Adjusted compliance: 35.9% (12 Met, 4 Partial, 23 Gap, 10 N/A of 49 items)
  • Critical gates: RED — items 2 (AGENTS.md), 16 (required CI runs only go build — no go test or lint), and 40 (scoped secrets lack a documented dev/stage/prod SSM layout) are not Met
  • Top recommendations:
    1. [S] Gap — add AGENTS.md at repo root (build/test commands, per-task README convention)
    2. [S] Partial — extend .github/workflows/ci.yaml to run go test ./... and golangci-lint, then require both in the ruleset
    3. [M] Partial — document the SSM Parameter Store dev/stage/prod prefix layout and validate it at pipeline load

Documentation only — no code changes.


Requested by: juili.chormole@pattern.com

@juilichormole
juilichormole requested a review from a team as a code owner September 9, 2026 05:28
Copilot AI lite review requested due to automatic review settings September 9, 2026 05:28

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The new audit doc contains a few verified incorrect/inconsistent references (notably file paths and Go version alignment) that should be corrected to avoid misleading guidance.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Adds a new repository audit document capturing a gauge-repo “engineering best practices” assessment for caterpillar, including score totals, per-category breakdowns, evidence, and prioritized remediation recommendations.

Changes:

  • Introduces docs/engineering-best-practices-audit.md with an audit scorecard and critical gate callouts.
  • Documents per-item evidence and recommendations across documentation, guardrails, testing, and tooling categories.
  • Lists prioritized remediation steps intended to raise compliance and satisfy critical gates.
File summaries
File Description
docs/engineering-best-practices-audit.md Adds the best-practices audit writeup, evidence, and recommendations for the repo.
Review details

Suppressed comments (1)

docs/engineering-best-practices-audit.md:142

  • This recommendation hard-codes Go 1.24.7, but go.mod currently declares Go 1.25.0. Either avoid a specific version here or base it on go.mod and note that CI/Dockerfile should be aligned to the same version.
22. **[S] Gap — devcontainer (item 36):** Add `.devcontainer/` pinned to Go 1.24.7 + Alpine 3.20 + librdkafka to match `build/Dockerfile`.
  • Files reviewed: 1/1 changed files
  • Comments generated: 2
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

| 40 | Scoped secrets per environment | **Partial** | Release workflow uses GitHub `secrets.DOCKERHUB_USERNAME`/`DOCKERHUB_TOKEN`; runtime pipelines pull via AWS Parameter Store (`{{ secret "/prod/api/token" }}`), but there is no documented dev/staging/prod scoping convention | Document the dev/stage/prod SSM prefix layout in README/AGENTS and validate the prefix at pipeline load. Critical gate. |
| 41 | Preview environments per PR | **Not applicable** | Distributable CLI + library, not a deployed hosted service | — |
| 42 | Hot-reload / watch mode | **Not applicable** | Go compile-and-run CLI; pipeline runs are batch — no long-running dev-server surface for hot-reload | — |
| 43 | Structured logging (JSON) | **Gap** | `internal/pkg/pipeline/pipeline.go` and `pipeline/task/task.go` use `fmt.Println` for status/errors; no `log/slog` or structured logger | Switch to `log/slog` with JSON output and include task name, record ID, and pipeline run ID. |
| 45 | Feature flags with local overrides | **Gap** | No `patterninc/toggles-go` or LaunchDarkly integration | Add a lightweight flag hook (env-var overrides in dev) for opt-in features like DAG mode, once it exits EXPERIMENTAL. |
| 46 | Database migration tooling | **Not applicable** | Repo owns no database | — |
| 47 | Dependency update automation | **Met** | Inherited Pattern Wiz policy for verified `patterninc` repos | — |
| 48 | Reproducible builds (lockfiles) | **Met** | `go.mod` + `go.sum` pinned; Dockerfile pins Alpine 3.20 + Go 1.24.7; release workflow uses matching Go version. Critical gate. | — |
@juilichormole
juilichormole merged commit 078bf59 into main Sep 9, 2026
8 checks passed
@juilichormole
juilichormole deleted the docs/gauge-repo-audit branch September 9, 2026 07:42
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.

3 participants