feat(grammar): a row that needs two columns to name it could not be named - #330
Merged
AminChirazi merged 1 commit intoAug 1, 2026
Merged
Conversation
…amed The row target identifies by content instead of position, which is the whole reason it exists — but it took one anchor, and one column is often not unique. A table with two people called John and two called Doe has no single anchor that finds John Doe's row. `containing "Doe"` failed with `matches 2 rows`, correctly and unhelpfully, and the only thing left to write was `tr:nth-child(2)`: the positional selector this target was built to remove, reintroduced by hand. `containing "John" and "Doe"` requires every anchor in the SAME row, so the conjunction narrows rather than widens. Anchors in different rows match nothing rather than picking one, and a conjunction that is still ambiguous gives the same `matches N rows` error a single anchor does. The quotes delimit and `and` is a separator, the same rule the multi-option Select uses and for the same reason: an anchor is arbitrary page text. Carried beside the primary anchor as a new key, so a reader that knows only one anchor still finds the field it expects, and a trace written before conjunction decodes to the single-anchor behaviour unchanged. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
AminChirazi
force-pushed
the
relanded/3-multi-select
branch
from
August 1, 2026 10:00
4fb301d to
99680a3
Compare
AminChirazi
force-pushed
the
relanded/4-conjunctive-anchors
branch
from
August 1, 2026 10:00
fc9dc8e to
ffecad0
Compare
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.
The row target identifies by content instead of position — but it took one anchor, and one column is often not unique. With two people called John and two called Doe, no single anchor finds John Doe's row.
containing "Doe"fails withmatches 2 rows, correctly and unhelpfully, leaving onlytr:nth-child(2)— the positional selector this target was built to remove.- Click the "Edit" in the item containing "John" and "Doe"Every anchor must be in the same row, so the conjunction narrows rather than widens.
Not the selector growth the charter declines — that clause is about adopting another framework's idioms; this is flowproof's own identity-not-position principle reaching a table where one column identifies nothing.
Two red paths, both on a real ambiguous table: anchors in different rows match nothing rather than picking one, and a still-ambiguous conjunction keeps the existing
matches N rowserror. The pre-existinggrid_cell_e2eandscoped_container_e2esuites pass unchanged, which is the evidence the single-anchor path did not move.The one question: still a recording — more of one, replacing a hand-written positional selector.
🤖 Generated with Claude Code