Skip to content

docs(adr): amend ADR-0028: first-setup retired without a soak (ADR-0031) - #1246

Merged
bketelsen merged 2 commits into
mainfrom
murbella/adr-0031-first-setup-retired
Nov 6, 2026
Merged

bketelsen merged 2 commits into
mainfrom
murbella/adr-0031-first-setup-retired

Conversation

@frostyard-machines

Copy link
Copy Markdown
Contributor

Why

ADR-0028 (from #1224) has two consequences that no longer hold:

  • Retirement: it says first-setup, its APT package and its frostyard.org pages retire after a soak of 14 days and 3 green main builds, and that a revert restores first-setup while its deb stays in APT. The soak was dropped. frostyard/first-setup is archived, and apt-publisher#32 withdrew every snow-first-setup version from trixie (record withdrawals/2026-11-05-snow-first-setup.txt).
  • Lab gate: it says the lab first-login probe gates its lane after 3 green main runs. The probe is a report-only mode of a manual, advisory lane (lab ADR-0016); whether it gates is a lab decision, so a snosi ADR that states it goes stale with no snosi change.

Accepted ADRs are immutable except for status and successor pointers, so this adds an amending ADR instead of editing ADR-0028.

What

  • docs/adr/0031-first-setup-retired-without-a-soak.md (Accepted): first-setup is retired with no soak; a revert of ADR-0028 needs apt-publisher to republish the deb first (an image build that lists it now fails when APT resolves packages); snosi documents only the first-login gates it runs (first-login.finalize, test/first-login-trigger-test.sh, and testsuite's desktop.feature in the lab container lane). The lab probe's gate status lives in lab.
  • ADR-0028 status: Accepted; its retirement and lab-gate consequences are amended by ADR-0031. docs/README.md indexes ADR-0031.
  • AGENTS.md: the first-login paragraph names the withdrawn deb and the revert path; the Documentation section adds the rule that a snosi ADR links another repository's gate or schedule instead of stating it.
  • docs/integration-contracts.md: snow-first-setup is withdrawn from APT (ADR-0031).

Guard

  • test/first-login-trigger-test.sh section 7 (already in validate.yml): fails when ADR-0028 keeps its soak or lab-gate text without the ADR-0031 pointer in its status, when ADR-0031 is missing or lacks the withdrawn deb, the revert path or the lab gate owner, and when docs/README.md does not index ADR-0031. Checked to fail with the old ADR-0028 status and with ADR-0031 removed.
  • .memory/corrections.jsonl: 1 line.

Checks (local)

  • bash test/first-login-trigger-test.sh: 99 passed, 0 failed.
  • shellcheck test/first-login-trigger-test.sh: clean.
  • make ci BASE=origin/main: template gate, Node tests, policy-as-code-test, risk-paths-test, build-workflow-permissions-test pass; corrections append-only.

No image content changes. No path in .github/risk-paths.json matches.

ADR-0028's consequences said that first-setup retires after a 14-day soak,
that a revert restores first-setup while its deb stays in APT, and that the
lab first-login probe gates its lane after 3 green main runs. None holds:
the soak was dropped, apt-publisher#32 withdrew every snow-first-setup
version from trixie, and the probe is a report-only lab mode (lab ADR-0016).

Accepted ADRs are immutable, so ADR-0031 amends ADR-0028: first-setup is
retired, a revert needs a republication of the deb first, and snosi
documents only the first-login gates it runs. ADR-0028's status points to
ADR-0031; AGENTS.md and integration-contracts.md follow.

Guard: test/first-login-trigger-test.sh section 7 fails when ADR-0028 keeps
the stale text without the amendment pointer, or when ADR-0031 lacks the
corrections. AGENTS.md gains the rule that a snosi ADR links another
repository's gate instead of stating it; .memory/corrections.jsonl records it.
…e self-checks

Cross-review found that section 7 skipped its ADR-0028 assertion when the
file was missing or had no stale text. The check is now a function that
fails on a missing or unreadable record, and 6 fixture cases prove that it
detects a missing ADR-0028 or ADR-0031, a missing amendment pointer, a lost
revert path and a missing index entry.
@frostyard-machines

Copy link
Copy Markdown
Contributor Author

Cross-review

  • Reviewer: openai/gpt-6.1-sol; coder: anthropic claude-opus-5.5. Base a45bd2d42576e34fa519c2d8bf66bc25542a5869.
  • Initial review at 38505ba: Not ready, 1 blocking point. Section 7 of test/first-login-trigger-test.sh skipped the ADR-0028 assertion when the file was missing or had no stale text, so no failure was recorded.
  • Fix 2bb2987: adr_records checks every record unconditionally; 6 fixture self-checks (missing ADR-0028, no amendment pointer, no status line and no stale text, missing ADR-0031, no revert path, no index entry) each require a failure that names the problem.
  • Re-review 1 at 2bb29875953cecae43b83339bea8c7a6e06a5e8d: Ready, Blocking: none.

Revert test

In a scratch worktree at 2bb2987, with AGENTS.md, docs/README.md, ADR-0028 and docs/integration-contracts.md restored to the base and ADR-0031 removed, bash test/first-login-trigger-test.sh exits 1 with not ok - ADR records: ADR-0028 status names no ADR-0031 amendment: - **Status:** Accepted;ADR-0031 is missing;docs/README.md does not index ADR-0031. At the head: 103 passed, 0 failed.

CI is green at 2bb2987.

@frostyard-machines frostyard-machines added the ready-for-human Reviewed, CI green: ready for Brian to review and merge label Nov 6, 2026
@bketelsen
bketelsen merged commit 857f718 into main Nov 6, 2026
21 checks passed
@bketelsen
bketelsen deleted the murbella/adr-0031-first-setup-retired branch November 6, 2026 13:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-for-human Reviewed, CI green: ready for Brian to review and merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants