I wrote in my AGENTS.md "do not use chained ternary operators." I'm still waiting for it to work.

I've found that telling agents to not do something mostly just gives them a suggestion of a way to do that thing, and the part about not doing it that way gets lost. Well, it's nicely accessible for when it apologizes for doing it.

I now try to only give examples of how I want it to do things, and hooks that complain when they do the bad thing (but still don't mention the bad thing in the complaint.)

I would actually prefer chained ternaries over more verbose if/else expressions with duplicated LHS, so this does go back to the argument about "taste".

This is one of the things I like about Rust. You can have both.

    let foo = {
        if bar {
            1
        } else if baz {
            2
        } else {
            3
        }
    };
Unfortunately not all languages are Rust.

That isn't more concise than

   foo = bar ? 1
             : baz ? 2
                   : 3;

But it's more readable, and that's what matters.

You're better off using linting for something specific like that.