feat(verify-workspace-config): flag tracked .automaker-lock (fleet PR-conflict source)#47
Merged
Merged
Conversation
…ict source) .automaker-lock is auto-mode's runtime lock; it's rewritten on every run. When it's committed, every concurrent auto-mode PR mutates it and they all collide on it — a branch's PRs go CONFLICTING/DIRTY the moment one merges (observed across the fleet; cf. protoMaker #4109/#4120, protoContent). Gitignoring alone does NOT fix an already-tracked file — it must be `git rm --cached`. Adds two workspace-standard rules (mirroring the .beads/beads.db pair): - automaker-lock-gitignored (error): .automaker-lock is in .gitignore - automaker-lock-not-committed (error): .automaker-lock is not tracked Adds .automaker-lock to REQUIRED_GITIGNORE so the scaffold (init-workspace-config) gitignores it for new repos. Both local-CI and remote (--repo) fleet-audit modes get the check for free. Tests updated; release-tools' own .gitignore patched. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
👀 Quinn is reviewing — verdict (PASS / WARN / FAIL) + findings to follow. |
There was a problem hiding this comment.
QA Audit — PR #47 | feat(verify-workspace-config): flag tracked .automaker-lock
VERDICT: WARN (pending CI)
CI Status
- Lint + smoke test: queued ⏳
Diff Review
- Adds two rules mirroring the established
.beads/beads.dbpattern:automaker-lock-gitignored(error if not in .gitignore) andautomaker-lock-not-committed(error if tracked — the core fix for fleet-wide PR collision). - Adds
.automaker-locktoREQUIRED_GITIGNOREscaffold list and.gitignoreitself. - Tests updated: error count bumped from 4→5, new pass assertion for
automaker-lock-not-committed, and.automaker-lockadded to the "good manifest" gitignore list. - Logic is correct: absent file satisfies
not-committed(zero false positives);gitignorecheck uses the sameresolveIgnoredhelper asbeads-db-gitignored.
Observations
- GAP: Clawpatch structural review unavailable (repo ref validation failed) — cross-file interaction between the two new rules and the existing ruleset was not formally verified.
- CI is non-terminal — PASS/FAIL verdict is pending the lint+smoke run.
— Quinn, QA Engineer
|
Submitted COMMENT review on #47. CI is still queued — a CI-completion event will re-dispatch for the formal PASS/FAIL verdict once checks settle. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds two workspace-standard rules (mirroring
.beads/beads.db): automaker-lock-gitignored + automaker-lock-not-committed. A tracked.automaker-lock(auto-mode's runtime lock) makes every concurrent auto-mode PR collide on it — the cascade that stranded protoContent's PRs (and cf. protoMaker #4109/#4120). Gitignore alone doesn't fix an already-tracked file; it needsgit rm --cached. Also added toREQUIRED_GITIGNOREso the scaffold covers new repos. Runs in both per-repo CI (local) and the--repofleet audit. 60/60 tests pass.🤖 Generated with Claude Code