Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
252b665
feat(verdict): a rule id parses through the class grammar
wenzowski Sep 9, 2026
0e72d2e
feat(config)!: put all 136 rule ids in the three-word grammar
wenzowski Sep 9, 2026
793ce75
feat(config)!: enforce the id grammar at load, and collapse where two…
wenzowski Sep 9, 2026
08cf531
feat(refusal)!: render the rule id only where it differs from the class
wenzowski Sep 9, 2026
b80cbc6
fix(tests): carry the migration through every surface that names a rule
wenzowski Sep 9, 2026
5f42b3d
fix(policy): keep `load` under its line budget, and migrate the rego …
wenzowski Sep 9, 2026
655b17b
feat(policy)!: put the module finding ids in the grammar too
wenzowski Sep 9, 2026
8a1ba56
fix(policy): carry the finding-id migration to every surface that nam…
wenzowski Sep 9, 2026
19c83f5
fix(tests): stop forking the repo setup, and finish the bats migration
wenzowski Sep 9, 2026
98e2c17
feat(policy)!: admit a rename rewrite in a governed shell file
wenzowski Sep 9, 2026
22ba7c9
fix(policy): carry the grammar to what main added under the branch
wenzowski Sep 9, 2026
58093e6
fix(policy): finish the grammar over what main added, tests and prose…
wenzowski Sep 9, 2026
88755db
fix(commit): an unreadable parent config leaves the commit unjudged
wenzowski Sep 9, 2026
b0c2357
fix(config): a config read from a ref is compared, not judged by this…
wenzowski Sep 9, 2026
06fd4c7
fix(config): keep `validate_tables` inside the line budget
wenzowski Sep 9, 2026
7a69ff7
fix(policy): retire the last mention of a renamed finding id
wenzowski Sep 9, 2026
ded2e78
fix(policy): name the two ci-parity arms main added under the old id
wenzowski Sep 10, 2026
5913c0b
fix(cli): normalise a rule id at the argument boundary, where it was not
wenzowski Sep 11, 2026
8053f7c
test(preset): hold a preset's finding ids to the vendor's grammar
wenzowski Sep 11, 2026
8ee5ae6
fix(cli): match a rule id by its stored spelling before normalising
wenzowski Sep 11, 2026
72ab966
fix(config): point four remedies at the id this branch renamed them to
wenzowski Sep 11, 2026
742f407
chore(claude): allow the Linear connector's calls without a prompt
wenzowski Sep 11, 2026
45ca0a7
revert(claude): drop the Linear grant, the gate that refused it is right
wenzowski Sep 11, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ to green — a red run means verify was skipped.
## Background the slow path; never block the foreground

**EVERY `mise` call is backgrounded** (`run_in_background`), **and so is anything
else past ~2 minutes**. Gated — `sleep` is blocked, `foreground-mise` the rest, and
else past ~2 minutes**. Gated — `sleep` is blocked, `task run blocked` the rest, and
a foreground command is _killed_ at ~2 min. **No fast list, `alive` included.**
**The exit notification IS the wake-up; waiting for it costs nothing.** A
backgrounded task re-invokes you when it exits (measured 523/524, failures
Expand All @@ -141,7 +141,7 @@ by `run-shape-guard`. To ask what a live task is _doing_, `mise run alive`.
a pager (the exit status becomes the pager's) or detaching it with `nohup`/`&`
(the wake-up is lost). Put `run_in_background` on the long command, never a launcher, and
**never redirect it** — the harness captures where the HUMAN watches, so `>log
2>&1` writes where nobody reads. `verdict-not-discarded`, `background-redirect`.
2>&1` writes where nobody reads. `verdict-not-discarded`, `redirect write unread`.
**Never** use a foreground `sleep`, spin a foreground busy-poll, or end a turn idle
"to watch" something — background it, act on its exit, and commit first, since
**committed-and-pushed is the only state surviving a reclaim, and that is the TREE's
Expand Down
4 changes: 2 additions & 2 deletions batten.example.toml
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ redirect = "append, or write through the surface that owns the file"
# default). Scope is never severity: a severity value in the scope
# key (or the reverse) is refused with exit 1, not reinterpreted.
[[rule]]
id = "no-conflict-markers"
id = "source carry broken"
kind = "command"
glob = "**/*.rs"
check = "hk util check-merge-conflict --assume-in-merge {{files}}"
Expand Down Expand Up @@ -311,7 +311,7 @@ reason = "set the tool's own severity to deny; do not let a warning ride an exit
# A git-ignored batten.local.toml may NOT waive a rule declared here — a waiver
# lowers the bar, so the durable tier is the committed authority alone (§8).
[[waiver]]
rule = "no-conflict-markers"
rule = "source carry broken"
reason = "the vendored tree is being replaced in CLOUD-123; gating it churns the diff"
expires = "2026-12-31"
path = "vendor/**"
Expand Down
Loading
Loading