Skip to content

Roadmap: keep go-template a minimal, current, low-friction Go scaffold #104

Description

@devantler

🤖 Generated by the Daily AI Assistant

Roadmap: keep go-template a minimal, current, low-friction Go scaffold

First strategy review for go-template (the repo had no roadmap label and no open issues). This epic sets the north-star and tracks the small set of theme-level work; actionable children link back here with Fixes #N.

Reconciled 2026-06-23 (strategy review #2). Themes 1 and 2 have shipped since this epic was filed — the original "→ child issue" prose below is kept for history but annotated with current status. Theme 3 (template-suite parity) is the lone open theme and is a portfolio-level holistic concern rather than a single-repo fix. See the reconciliation comment for evidence.

Where the product is

A deliberately minimal, batteries-included Go scaffold: no-op main.go, conventional cmd//internal//pkg/ layout, one tested pkg/example unit, golangci-lint v2 + MegaLinter, a validate-go-project ruleset gate (build/test/lint/dead-code/coverage), GoReleaser cd.yaml, daily Dependabot with the internal-dep cooldown exemption, and agent tooling (AGENTS.md + .claude/skills/maintain). It is healthy and current (Go floor 1.25.10, tooling-driven).

Where it should be

The bias is minimal, idiomatic, current — not feature-rich. So "advancing" this product means reducing friction and drift, never adding product features. Three themes:

  1. Onboarding friction. — ✅ DELIVERED (feat(scripts): add rename-placeholders.sh for one-shot module-path onboarding #107, 2026-06-10). scripts/rename-placeholders.sh now does one-shot personalisation: it repoints the module path across go.mod, Go imports, and the README badge URLs (deriving the path from origin's GitHub remote, or taking it as an argument), runs go mod tidy, and deliberately leaves the upstream Use this template links intact. It is documented in both the README §"Use this template" and AGENTS.md. (Original ask: creating a project still required manual go mod edit -module … + fixing README references; gitops-tenant-template already shipped a scripts/rename-placeholders.sh and go-template had no equivalent.)
  2. Toolchain & scaffold currency. — ✅ DELIVERED (documented policy + recurring freshness check in AGENTS.md). The Go floor is the single source of truth in go.mod (today 1.25.10); the tooling-driven rationale is now captured in the AGENTS.md Toolchain-floor policy section ("equals the highest minimum the house tooling requires — today Go 1.25 because the shared Dead Code Analysis step installs deadcode; bump only when forced, never speculatively, record the trigger in the PR body"), and a recurring Toolchain-floor freshness item lives in the Maintenance task menu. Nothing hard-codes a second copy of the version (copilot-setup-steps.yml reads go-version-file: go.mod; the README points at go.mod) so it cannot drift. A CI version-check job was deliberately not added — that would be feature-creep against the minimal-by-design constraint; an agent-cadence freshness check is the right weight for a template. (Original ask: the rationale lived only in prose and risked drifting → a small documented policy + a recurring freshness check.)
  3. Template-suite parity (portfolio concern). — 🔄 OPEN (the lone remaining theme). go-template, dotnet-template, and the other templates should stay aligned on what they can share — agent files, label sets, Dependabot/cooldown policy, CI structure, README shape. Progress so far: .github/CODEOWNERS was added for parity (chore: add .github/CODEOWNERS for template-suite parity #117). Remaining parity reconciliation is a cross-template (holistic) effort and lands as additive PRs; it may graduate to a monorepo holistic-review item rather than living only here. Note: the sync-labels.yaml workflow (currently still present) is slated for org-wide retirement under devantler-tech/.github #58 now that declarative IssueLabels (chore(deps): Bump devantler-tech/reusable-workflows/.github/workflows/scan-for-todo-comments.yaml from 3.1.3 to 3.1.4 #57) has merged — that cutover is coordinated there, not in this epic.

Rough size

Small. The 2–3 focused children were Themes 1–2 (both now shipped); only the ongoing parity theme remains. No large structural change. Respect the minimal-by-design constraint — reject feature-creep proposals here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions