chore(ci): retrigger on PR-body edits + tolerate markdown decoration on override line#122
Merged
chore(ci): retrigger on PR-body edits + tolerate markdown decoration on override line#122
Conversation
…on override line Two ergonomic fixes for the cross-time-determinism gate, both addressing friction observed in the v0.1.4 release-prep cycle. (1) `pull_request:edited` trigger. The default `pull_request` workflow trigger is [opened, synchronize, reopened] — body edits don't fire CI. So a PR author who fixes a missing `Override-Deterministic-Baseline:` line via `gh pr edit` doesn't get an auto-rerun; they have to push an empty commit. Adding `edited` to the types list closes the ceremony. The marginal cost is full CI on every body edit. Body edits are rare per PR — usually zero, sometimes one for a description revision — so the cost is acceptable. PR-comment edits are a different event class (`issue_comment`, not in the types list) and don't trigger. (2) Override-line tolerates markdown decoration. The lint regex `^Override-Deterministic-Baseline: .+` is line-anchored, which rejects: - ` Override-Deterministic-Baseline: …` (indented) - `- Override-Deterministic-Baseline: …` (bullet item) - `> Override-Deterministic-Baseline: …` (blockquote) Authors who write the directive inside a markdown list (a common shape when documenting multiple overrides) currently fail the gate. The relaxed regex `^[[:space:]>*-]*Override-...` allows these decorations. Backticks are intentionally NOT relaxed: `` `Override-...` `` inside prose is "talking about the directive" rather than invoking it, and tolerating that would weaken the contract. The test cases in the commit message of the PR document the exact decoration set. No trace seed: this refines existing surface (cross-time gate LLR-045) without changing the rule's semantic. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Summary
Two ergonomic fixes for the cross-time-determinism gate, both
addressing friction observed in the v0.1.4 release-prep cycle.
(1)
pull_request:editedtriggerThe default
pull_requestworkflow trigger is[opened, synchronize, reopened]— body edits don't fire CI. So aPR author who fixes a missing
Override-Deterministic-Baseline:line via
gh pr editdoesn't get an auto-rerun; they have topush an empty commit. Adding
editedto the types list closesthe ceremony.
Marginal cost: full CI on every body edit. Body edits are rare
per PR (usually zero, sometimes one for a description revision)
so the cost is acceptable.
(2) Override-line tolerates markdown decoration
The lint regex
^Override-Deterministic-Baseline: .+is line-anchored, which rejects:
Override-Deterministic-Baseline: …(indented)- Override-Deterministic-Baseline: …(bullet item)> Override-Deterministic-Baseline: …(blockquote)Authors who write the directive inside a markdown list (common
shape when documenting multiple overrides) currently fail the
gate. The relaxed regex
^[[:space:]>*-]*Override-...allowsthese decorations.
Backticks are intentionally NOT relaxed:
`Override-...`inside prose is "talking about the directive" rather than
invoking it, and tolerating that would weaken the contract.
Spot-check
Lines 5-6 (heading and prose) correctly do not match.
Trace
No new SYS / HLR / LLR / TEST entries — refines existing
cross-time gate (LLR-045) without changing the rule's semantic.
No floor changes.
Test plan
cargo fmt --checkcargo clippy --workspace --all-targets -- -D warningscargo test --workspace --all-targetsRUSTDOCFLAGS='-D missing_docs -D rustdoc::broken_intra_doc_links' cargo doc --workspace --no-depscargo build --release --workspacebash -n scripts/deterministic-baseline-override-lint.sh(shell syntax)cargo run -p cargo-evidence -- evidence trace --validate->VERIFY_OKcargo run -p cargo-evidence -- evidence floors --format=jsonl->FLOORS_OK🤖 Generated with Claude Code