.agents/skills/tix-qa-sweep/SKILL.md
Repair every visible non-base commit without squashing, reordering, or skipping commits. Use stable Tix change IDs because amendments rewrite commit hashes.
Before running repository commands, determine which profile the user wants:
cargo machete, Clippy, and cargo deny.If the request explicitly says fast or thorough, infer the corresponding profile. Otherwise, use a questionnaire when available to ask the user to choose Fast or Thorough. If no questionnaire is available, ask for the choice in chat and do not start the sweep until the user answers. Do not infer a profile from a generic request to validate or sweep.
Use --fast or --thorough, respectively, for every copied-script invocation in the sweep.
git status --porcelain=v1 --branch. Require a clean index and worktree, including no untracked files. Do not stash, discard, or absorb pre-existing work.tix, cargo, just, cargo-machete, and cargo-deny to be available. For a thorough sweep, also require cargo-nextest.mktemp -d "${TMPDIR:-/tmp}/tix-qa-sweep.XXXXXX".tix show unchanged to <temp-dir>/show.txt and copy etc/scripts/ci-check-local.sh to <temp-dir>/ci-check-local.sh. Run the copy from the repository root throughout the sweep because both repository files disappear when visiting commits older than their introduction.show.txt, collect every visible commit row except base separators, ordered oldest first. Preserve topological order; for independent commits at the same depth, use their bottom-to-top display order. Stop if a displayed change-ID prefix is ambiguous or duplicated.Visit the recorded change IDs once in oldest-first order. A fast sweep keeps Cargo's build cache between change IDs; a successful thorough check cleans before moving to the next change ID.
For each recorded change ID:
tix travel <change-id> directly and verify that HEAD is the intended change.<temp-dir>/ci-check-local.sh <mode-flag> with the selected --fast or --thorough flag.cargo fmt --all -- --check fails, run cargo fmt --all, stage and amend all resulting formatting changes with signing disabled, require a clean worktree, and rerun the selected profile. Formatting changes are always wanted and do not need the repair loop.Reproduce the printed failing command without output suppression. Inspect the failure, relevant callers, tests, and nearby history. Distinguish a repository defect from a missing tool, unsupported host behavior, network failure, or flake.
Fix the repository defect with the smallest change that makes the current commit self-contained. Preserve the commit's intent and do not pull unrelated later changes backward.
Run the focused failing check while the worktree is dirty. Inspect the complete diff and stage only intended paths; do not absorb generated residue blindly.
Amend the staged fix with signing disabled:
GIT_CONFIG_COUNT=1 GIT_CONFIG_KEY_0=commit.gpgSign GIT_CONFIG_VALUE_0=false tix amend --index
Require a clean worktree, then rerun the selected profile. Repeat the diagnose, fix, focused-check, amend, and profile-check cycle until it passes.
Treat a failed tix travel as an expected replay conflict only when it says time travel would conflict and the worktree remains unchanged.
tix travel --materialize-conflicts <change-id>.git diff --cc, index stages :1:, :2:, and :3:, nearby code, tests, and relevant history.tix amend --index command above.tix travel <change-id>.Stop instead of guessing when resolution requires API, compatibility, or product judgment.
tix travel <starting-change-id>. Verify the original checkout is restored and git status --porcelain=v1 is empty.