SmartConfig

Next steps

Historical: the roadmap written at M1 for M2 (2026-09-27), kept as it was then, with a few lines corrected where they could mislead (marked “2026-10-09”). It was not updated after M2.

The roadmap from here to the end of M2, and what comes after. Written 2026-09-27, while the M2 plan is being drafted. WORKLOG.md stays the one source of truth for what is happening right now.

Where we are

Rules we keep

1. Now, while the M2 plan is drafted

2. From plan approval to M2 done

2.1 Right after you approve the plan

2.2 The loop for every step

  1. WORKLOG says “Now: step N” and is pushed.
  2. Code and tests.
  3. Checks:
    • gofmt -l ., go vet ./... and go test ./... as the user;
    • sudo -E go test when root-only tests are touched;
    • make race if approved;
    • CI green, if approved.
  4. One code commit, one worklog commit, push.

Claude does not ask between steps. It stops and asks when:

2.3 Five chunks, each reviewed

The step numbers of the approved plan win. The chunks only group them.

Chunk What Review You see (FYI)
A store housekeeping and schema migration light -
B row kinds (file, link, deleted, digest) through the CLI normal a sample sc log
C glob matcher and default scope light a table of what gets watched on this VM, per tier, and what is excluded
D the inotify watcher engine full: concurrency, events, security -
E sc watch, systemd unit, acceptance script, docs normal -

2.4 M2 is done when all of these hold

Rough size: 2.5 to 3 working days of session time plus the 24-hour soak, so 3 to 4 calendar days. This is an estimate from code size, not a measurement.

3. After M2

  1. Decide the milestone order at M2 sign-off (question 1).
  2. Nested virtualization (optional speed-up). When the VM is powered off for the m2-accepted snapshot, turn on nested VT-x if your host allows it. It is not required: QEMU is already installed and runs throwaway boot tests without /dev/kvm (TCG), just more slowly.
  3. Research first, docs only. If M4 is next, prove the rescue recipe in a throwaway QEMU VM, never by breaking the dev VM’s boot:
    • kernel arguments ro fstab=no systemd.unit=rescue.target SYSTEMD_SULOGIN_FORCE=1;
    • root stays read-only;
    • the static sc reads the store;
    • the GRUB menu comes back after a failed boot.
  4. One owner scenario for each remaining milestone in MILESTONES.md. One each, no detailed specs.
  5. Plan, approve, build the next milestone with the same loop and reviewed chunks.
  6. A victim machine for boot-breaking tests (M4, M6): QEMU with -snapshot inside the dev VM, and a VirtualBox linked clone for final acceptance.
  7. M3: fstab is the first checker, with findmnt --verify as the reference in its tests. SmartConfig adds severity and a warning at save time.
  8. M7: llama.cpp cannot live in the static binary. It would run as a separate opt-in process, and it is a new dependency, so we ask then.

What only you can do

Open questions, with our recommendation

Answered 2026-09-28: yes to every recommendation below. Question 7 (the ruleset) and question 13 (host details) still need you.

  1. Build the rescue path (M4) before the checkers (M3)? Answered 2026-10-03: no, M3 first (M4’s boot tests need QEMU without KVM, slow on this VM; M3 is built in the repo while the M2 soak runs). Was: decide at M2 sign-off; nothing changes before then. We lean yes, if the feasibility check in section 3 holds. The worst failures leave root locked with no shell, and only M4 recovers from them. (M4’s lab, 2026-10-04, found otherwise: Ubuntu’s sulogin opens a root shell at the console.) The cost: “warn before a bad edit” comes later, and the films need a small edit.
  2. Tiers in M2 only as log priority? Yes. Alerts and labels go to M3.
  3. boot_id column in M2 or M4? M4. CLAUDE.md says “not even stubs”, and M4 needs its own boot-ok marker anyway.
  4. Race tests with CGO_ENABLED=1, tests only? Yes, as make race. The shipped binary stays static.
  5. CI on every push? Yes. Pin the runner to ubuntu-24.04 and the actions by SHA, give it read-only permissions, and set no required checks.
  6. Local git hooks against leaking secrets? Yes. GitHub push protection does not catch a plain password, and anything in docs/ is public on Pages within a minute. The hooks block a private denylist (such as the VM password) and the patterns of password hashes ($6$..., $y$...), -----BEGIN ... PRIVATE KEY----- and psk=.
  7. Ruleset on main (no force-push, no deletion)? Yes, created by you in the web UI (see “What only you can do”).
  8. CLAUDE.md edits (docs/ in Layout, “read WORKLOG first”, “push after every step”, the race exception)? Yes.
  9. Go 1.22.2 or a supported Go? Move to a supported Go (1.27.x, or 1.26.8, which is already in the module cache) in one commit before chunk A, checked with govulncheck. On Linux, govulncheck finds 2 reachable standard-library issues (GO-2026-4341, GO-2025-3849), and M2 makes sc a root daemon. govulncheck would be a new tool, so this is your call.
  10. A GitHub issue as well as WORKLOG? No. WORKLOG only.
  11. Should the chunk B and C checkpoints block work? No, FYI only.
  12. Reboot, 24-hour soak and apt upgrade for M2 acceptance? Yes, each after a fresh snapshot and an announcement.
  13. Host OS, Hyper-V status, free disk? Please tell us before M2 ends. It decides whether nested VT-x can speed up later boot tests and how many snapshots and clones the host can hold. Boot tests work without it.

How disagreements were settled

Risks to watch

Review corrections applied

A critic checked this roadmap against the VM, the repo and GitHub. Its corrections are applied above: the hot-journal and sc-m1 restore checks, the failure-path tests, the safe 41_custom scenario, the VirtualBox 7.2 steps, the token without admin rights, the secret-pattern hooks, the Go vulnerability count, and nested virtualization as a speed-up rather than a requirement.

Evidence