Decision log¶
Every design decision behind these components is recorded as a dated spec
under docs/development/specs/, per spec-first development.
This page is the exhaustive index — every spec, in date order. The major
design decisions are also distilled into readable
Explanation pages; this table is the complete,
unfiltered record those pages draw from.
| Date | Spec | Status | Decides | Component(s) |
|---|---|---|---|---|
| 2026-05-15 | cicd v0.1 | approved | Four initial components shipped as v0.1.0: single-file form, the infra-tools image, the core input rules. |
all |
| 2026-05-16 | tofu-plan-apply v0.2 | approved | OIDC-authenticated tofu plan/apply, the GitLab HTTP state backend, manual-gated apply. |
tofu-plan, tofu-apply |
| 2026-05-16 | tofu-apply-plan-sources v0.3 | approved | plan_source (job/ref); the hidden-job extends: pattern; mode-coupled rules:; tag_pattern. |
tofu-plan, tofu-apply |
| 2026-05-18 | gate-component-rules v0.4 | approved | Gate jobs carry an explicit rules: so they run in merge-request pipelines. |
tofu-lint, tofu-security, tofu-validate, zensical-pages |
| 2026-05-19 | token-inputs v0.5 | approved | Token-requiring inputs default to $CI_JOB_TOKEN; the consumer overrides. |
tofu-plan, tofu-apply |
| 2026-05-24 | provider-cache v0.6 | approved | OpenTofu provider plugin cache via TF_PLUGIN_CACHE_DIR, reduces re-download flakes. |
tofu-plan, tofu-apply, tofu-validate |
| 2026-05-27 | module-publish v0.7 | approved | tofu-module-publish publishes the tagged tree to the GitLab Terraform Module Registry. |
tofu-module-publish |
| 2026-05-30 | module-cache v0.7.2 | approved | .terraform/modules/ cache reduces flakes from transient upstream-registry outages. |
tofu-validate |
| 2026-06-02 | renovate-self v0.8 | approved | renovate-self component + the shared Renovate preset with a cicd-component-pin custom manager. |
renovate-self |
| 2026-06-03 | go-track v0.9 | approved | Four Go components extracted from go-tool-base. | go-lint, go-test, go-security, goreleaser |
| 2026-06-03 | rust-track v0.10 | approved | Five Rust components; disk-pressure tuning; cargo-binstall bootstrap. | rust-lint, rust-test, rust-security, rust-docs, release-plz |
| 2026-06-08 | gitleaks-scan-scoping v0.10.3 | approved | Gitleaks scans scoped to the MR's commit range, avoiding cross-branch false positives on shared runners. | go-security, rust-security, tofu-security |
| 2026-06-12 | release-plz-split-jobs v0.10.3 | approved | release-plz split into separate pr and release jobs to avoid working-tree mutation blocking publish. |
release-plz |
| 2026-06-16 | goreleaser-retry v0.10.5 | approved | goreleaser gains retry_max (default 2) auto-retry on transient failures. |
goreleaser |
| 2026-06-16 | release-plz-order-pr-after-release v0.10.4 | approved | release-plz:pr ordered after release-plz:release to avoid a spurious same-version MR. |
release-plz |
| 2026-06-17 | release-plz-checkout-pinned-sha v0.10.6 | approved | Checkout forced to the pipeline's commit SHA, avoiding a stale branch ref on reused runners. | release-plz |
| 2026-06-19 | renovate-self-token-self-ref v0.10.7 | approved | Token aliased to a non-colliding runtime variable name, avoiding a self-referencing job/group-variable collision. | renovate-self |
| 2026-06-21 | schedule-pipeline-scoping v0.10.8 | approved | Every component except renovate-self gains a leading schedule → never guard. |
all |
| 2026-06-21 | gate-components-tag-scoping v0.11.1 | approved | Gate jobs also skip tag pipelines ($CI_COMMIT_TAG → never) — tags are for publish jobs, not gates. |
tofu-lint, tofu-security, tofu-validate, zensical-pages |
| 2026-06-21 | go-image-default-1.26.4 v0.11.2 | approved | Image defaults bumped to match go.mod's toolchain requirement. |
go-test, go-security |
| 2026-06-21 | goreleaser-gotoolchain-auto v0.11.3 | approved | GOTOOLCHAIN default changed from local to auto, so goreleaser resolves go.mod's toolchain directive. |
goreleaser |
| 2026-06-21 | releaser-pleaser-component v0.11 | approved | releaser-pleaser wrapper component: schedule-never guard + token convention over apricote's image. |
releaser-pleaser |
| 2026-06-21 | self-test-churn-scoping | approved | Self-test triggers scoped to changed components, not run unconditionally. | all |
| 2026-06-22 | components-use-dev-tools v0.14 | approved | go-*/rust-* components default to the consolidated dev-tools image; runtime tool installs deleted. |
go-lint, go-test, go-security, goreleaser, rust-lint, rust-test, rust-security, rust-docs |
| 2026-06-22 | hugo-pages-component v0.12 | approved | hugo-pages component: build+deploy split, an MR build gate hand-rolled Hugo sites lacked. |
hugo-pages |
| 2026-06-22 | hugo-pages-mr-gate v0.13 | approved | mr_gate boolean input — a loose, direct-to-main mode for content sites. |
hugo-pages |
| 2026-06-22 | pipeline-churn-interruptible-cache v0.11.5 | approved | interruptible: true on gate jobs; terminal cache readers go pull-only; stable per-project cache keys. |
all |
| 2026-06-22 | renovate-image-default-43 v0.11.4 | approved | Image default bumped to match the preset's managerFilePatterns usage (≥39). |
renovate-self |
| 2026-06-23 | change-detection | implemented | changes array input on gate components; security category exempt (always-on). |
go-*, rust-*, tofu-*, zensical-pages, hugo-pages, svelte-* |
| 2026-06-23 | skill-security-component v0.19 | approved | skill-security: hidden-char, injection-heuristic, plugin-schema, and gitleaks scans for AI instruction-file repos. |
skill-security |
| 2026-06-23 | svelte-frontend-track | implemented | svelte-build/svelte-lint/svelte-test/svelte-security; the Go↔Svelte embed coupling. |
svelte-build, svelte-lint, svelte-test, svelte-security |
| 2026-06-30 | docs-diataxis-restructure | approved | This site's restructure into Diátaxis — the spec behind the page you're reading. | docs (no component) |
How to read this¶
- Status mirrors each spec's frontmatter:
draft(under discussion, not yet implementable) →approved(safe to implement) →rejected(considered and declined — kept, not deleted) →implemented(shipped). Most specs here go straight fromapprovedto shipped without an explicitimplementedflip; treatapprovedentries whose described behaviour matches the currenttemplates/as shipped. - This table is generated by hand and kept current as part of the contributing workflow — every new spec gets a row here when it lands.