Repository navigation
Adopt the sc-lint 0.8.2 consumer runner; delete the atm-core lint workarounds - #2296
Conversation
|
Round 2 (bf500cd,
|
…karounds sc-lint 0.8.2 ships the parallel keep-going consumer runner (#195/#196), `bootstrap.py exec` (#388) and the cargo-deny DNS retry (#371), so the atm-core workarounds for them go: .just/run_lint.py, sc_lint_binary.py, lint_cargo_deny.py, view_lines.py and their tests. sc-lint.toml now lists every check as a direct step (plus kit-drift, template-frontmatter and the three sc-* analyzers the old runner never listed) and a `ci` lint profile; `just lint` is the kit recipe. clippy-windows is tagged platform=linux so `just lint ci all` runs it on the Linux CI leg only. Views call `bootstrap.py exec -- sc-lint lint line-counts`. the wheel-only helper dispatch (`_sc-lint-py`) stay with their markers. Scope-only steps are filed as randlee/sc-lint#784. Bead: atm-phase-bg.adopt-081-runner Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…ecipe Sanity round 1: the 3-line `_sc-lint-py` recipe was a new wrapper under Rand's no-workarounds ruling. cargo-deny, cargo-shear, manifests and codespell are now plain sc-lint.toml steps on the kit's managed interpreter (`.sc-lint/venv/bin/python -m sc_lint.<helper>`, the documented invocation), one platform-tagged step per OS because the interpreter path differs on Windows. `_py`, `sc_lint_clippy_prefix` and `_sc-lint-clippy` remain, marked for randlee/sc-lint#198. Bead: atm-phase-bg.adopt-081-runner Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
bf500cd to
d70ff22
Compare
|
Rebased onto fix/bg-6-sclint082-boundary-loader (stack top), head d70ff22: full |
QA FAIL: atm-phase-bg.adopt-081-runner round 1Generated: 2026-10-29T21:53:00Z Machine Status (JSON){
"task": "atm-phase-bg.adopt-081-runner-qa1",
"checked_bead": "atm-phase-bg.adopt-081-runner",
"sprint": "bg-6",
"round": 1,
"branch": "fix/bg-6-sclint082-runner",
"commit": "d70ff2241e1840a4bc2220cc811b5bc4a6c187ef",
"verdict": "FAIL",
"deliverables": {"complete": 0, "total": 1 },
"findings": {"blocking": 1, "important": 0, "minor": 0, "ceremony": 0 }
}Findings
Carried Findings
Reviewers
NotesStack-view could not find a locally tracked phase-bg stack because historical catalog worktrees are unavailable. The mandated |
Summary
sc-lint 0.8.2 (republish of 0.8.1) now runs atm-core's lint suite; every workaround whose sc-lint issue shipped is deleted, the two that wait on randlee/sc-lint#198 stay with their markers.
Marker verdicts
.just/run_lint.py:123(parallel keep-going scheduler, serial all-target model)sc-lint lint ci --consumerruns steps in parallel, fail-slow, with profiles and--platform-scoperun_lint.py+tests/test_run_lint.py;just lintis the kit recipe.just/sc_lint_binary.py:10bootstrap.py exec -- sc-lint ...run_view.pycallsbootstrap.py exec.just/lint_cargo_deny.py:2,:11(DNS retry)sc_lint.lint_cargo_denyin the 0.8.2 wheel retries 3x on "could not resolve hostname"tests/test_lint_cargo_deny.py.just/view_lines.py:2sc-lint lint line-countsis the published checklinesview uses itJustfile:16_pybridge,:33-34sc_lint_clippy_prefix,:58-59_sc-lint-clippysetup.preor arunner.pythonconfiguration hook")lint_cargo_deny.pydispatch of the wheel-only helpers becomes plain config steps, no recipe.just/tests/test_bootstrap.py:574bridge-comment assertionsc-lint.tomllists every check as a direct step (the old config omitted kit-drift, template-frontmatter, sc-boundary, sc-portability, sc-runtime, which the old runner added by hand) and acilint profile. The four wheel-only helpers (cargo-deny, cargo-shear, manifests, codespell) are direct commands on the kit's managed interpreter, exactly as sc-lint documents them (.sc-lint/venv/bin/python -m sc_lint.<helper>); because that path is.sc-lint\\venv\\Scripts\\python.exeon Windows, each helper is three platform-tagged steps (deny-linux,deny-macos,deny-windows, ...), 48 steps in all, 40 distinct checks. No recipe was added for them (sanity round 1 finding, Rand's no-new-wrappers ruling).clippy-windowsis taggedplatform = "linux":just lint ci allruns it via cargo xwin on the Linux CI leg, reports itskipped/unsupported_cross_commandon macOS and Windows legs, and keeps it out of a macOS developer'sjust lint. The macOS CI leg's redundant xwin pass is dropped (Windows leg runs native Clippy). A Linux developer's barejust lintnow includes it (needs the bootstrapped cargo-xwin plus llvm-lib/nasm); the missing "CI-only step" capability is filed as randlee/sc-lint#784 (open).No new suppressions, excludes or allowlists. Kit files (
.sc-lint/bootstrap.py,.sc-lint/justfile,sc-lint.toml,installed.json) were re-rendered frominstall.jsonby the installer;kit-driftpasses.Recipes that remain in the Justfile for randlee/sc-lint#198 (all pre-existing, all marked)
_py(Justfile:16): runs repo Python checks on.bootstrap-venv, the PyO3-compatible interpreter; the kit offers norunner.pythonhook, so without it everyjust _py <script>step would run on PATHpython3.sc_lint_clippy_prefix+_sc-lint-clippy(Justfile:33-34, :58-59): Clippy must see the same interpreter for PyO3 builds; the kit has nosetup.pre._sc-lint-pyfrom the first push was removed in round 2.Parity (published check before/after on the same sources)
Lint-subject sources (Rust, Python, docs) are identical between the base and this layer; only lint infrastructure changed.
Before, old runner
.just/run_lint.py ci allat 0322873 (macOS rand-m5):After, kit runner
just lint ci all --jsonon the first push (after-ci-all.json, exit 0):Round 2 (helpers as per-platform steps) on macOS:
just lint ci allpasses 40 steps and reports the 8 linux/windows helper variants plus clippy-windows asskipped/unsupported_cross_command(see the round-2 commit's PR comment).Post-rebase full
just linton d80ba4f (host scope):lint.ci.consumer: pass (39 steps), exit 0 (557 s wall, measured while the Python test modules ran concurrently on the same host, so not a timing sample).sc-lint lint line-counts(binary) vs the deleted module route report the same limits (prod<=1000) and both pass. No check is lost: all 40 before-names appear in the after step list, plus the five the old config never listed.ANC-004 timing (
just lint, host scope, 39 steps, same host, three runs each)Median 1.4 % faster; the ranges overlap, so this is parity within run-to-run noise, not a measured speedup. The long poles (identities ~308 s, pytests ~316 s) are the same single steps under both runners.
Issue states (ANC-020)
--log-rootwrites nothing; comment posted). CI's "show clippy diagnostics" and "upload lint logs" steps were removed because the kit produces no log files.just testis driven by a consumer manifest: consumer-defined selectors, defaults and pass-through args sc-lint#196, fix: complete v1.2.0 publish manifest — all 7 crates + publish=false guards #371, docs: rename cross-host smoke planning to phase AB #388 closed and delivered.just lint(CI-only / profile-only steps) sc-lint#784 (new, open): scope-only / CI-only steps..github/actions/setup-sc-lint/action.ymlasserts.just/run_lint.pyexists inside the sc-lint source archive it copies, not in atm-core; no workflow uses that action.Deliverables
.just/run_lint.py,.just/sc_lint_binary.py,.just/lint_cargo_deny.py,.just/view_lines.pyand their tests (test_run_lint.py,test_lint_cargo_deny.py); feat: add qa-triage agent for per-finding sweep across worktrees #195/fix: docs/config cleanup — .triage gitignore, Q.7/Q.8 plan, wording fixes #196/docs: rename cross-host smoke planning to phase AB #388/fix: complete v1.2.0 publish manifest — all 7 crates + publish=false guards #371 delivered by sc-lint 0.8.2.sc-lint.toml/.sc-lint/install.json: 40 checks as direct steps (48 step entries: the four wheel-only helpers are platform-tagged per OS) +cilint profile;clippy-windowstaggedplatform = "linux"; kit files re-rendered, kit-drift clean.Justfile: kitlint *profilerecipe active (duplicate override removed);_py,sc_lint_clippy_prefix,_sc-lint-clippykept with process: encode Phase R post-mortem RBP gate policy in orchestration skills #198 markers; no new recipe (the round-1_sc-lint-pywas removed)..just/run_view.pylinesview viabootstrap.py exec -- sc-lint lint line-counts(docs: rename cross-host smoke planning to phase AB #388); tests updated (test_run_view,test_bootstrap,test_lint_boundaries,test_ci_scope,test_py_recipe).ci.yml) runs the kitci allprofile; log-upload and clippy-diagnostics steps removed;scripts/validate_release.pyfallback,print_help.py,lint-suite-prd.md,architecture.md,release-preflight-checklist.md, ADR-054 updated.just lint(CI-only / profile-only steps) sc-lint#784 (scope-only steps); comments on feat: add qa-triage agent for per-finding sweep across worktrees #195 and process: encode Phase R post-mortem RBP gate policy in orchestration skills #198; sent to team-lead@sc-lint (ANC-020).Bead:
atm-phase-bg.adopt-081-runnerGenerated by fenix@atm-dev claude:fable
🤖 Generated with Claude Code